我在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/')
我必须通过迭代再次检查我的应用程序,我认为这不是一个好的解决方案。
所以,我想知道你是否有任何建议或建议给我。
答案 0 :(得分:0)
您可以使用$ in运算符从单个查询中获取所有匹配项。
{ _id: {$in : [/^192.0.1.1/, /^194.1.1/ ] }}
因为你在正则表达式中使用/^
选项,所以会使用索引。
这有帮助吗?