我需要将一些MySQL翻译成mongodb。我有一个MySQL查询,在一列上有多个正则表达式匹配。是否有可能用mongodb做同样的事情?
SELECT * FROM table WHERE column1 REGEXP r1 AND column1 REGEXP r2 AND colum1 REGEXP r3;
使用pymongo我可以使用单个正则表达式执行正则表达式搜索,如下所示:
regex1 = re.compile(r1)
db.collection.find({"column1":regex1})
或
db.collection.find({"column1":{"$regex":"r1"}})
如何在column1上添加多个正则表达式?
这些不起作用:
{"column1":regex1,"column1":regex2}
{"column1":{"$regex":"r1","$regex":"r2"}}
{"column1":[regex1,regex2]}
{"column1":{"$regex":["r1","r2"]}}
答案 0 :(得分:5)
db.collection.find({"column1": {"$all": [re.compile("r1"), re.compile("r2")]}})
另请查看以后的$and operator。
除非您的正则表达式类似于前缀(/^text/
)索引won't be used,否则BTW。