MysqlにいくつかのDクラスとCクラスのIPがあるテーブルがあり、このテーブルを使用して、要求IPがデータベースにあるか、次のようなCクラスに属しているかをテストします。
select * from My_Table
where '192.168.1.12' LIKE CONCAT(ip, '%');
(ここで、192.168.1.12はテーブルに対してテストしているリクエストIPです)
私のデータベースでは、C形式のIP「192.168.1」がある場合、一致するものが得られます。
私はMongoDBの使用を考えていましたが、各IP(CまたはDクラス形式)が_id(デフォルトでインデックス付けされている)であるドキュメントに同じ情報があります。
正規表現が正反対の方法で機能する場合、どうすればMongoDBで機能させることができますか?(事前にCクラスを持っていた場合)
すべてのリクエストIPをCクラスに分割して、次のような正規表現で確認するとします。
db.my_table.find(_id: '^/split_ip/')
結果を繰り返すたびにアプリケーションを再度チェックインする必要がありますが、それは良い解決策ではないと思います。
ですから、何かアドバイスや提案がありますか?