Sep*_*älä 1 python mysql mongodb pymongo
我需要将一些MySQL翻译成mongodb.我有一个MySQL查询,在一列上有多个正则表达式匹配.有可能用mongodb做同样的事情吗?
SELECT * FROM table WHERE column1 REGEXP r1 AND column1 REGEXP r2 AND colum1 REGEXP r3;
Run Code Online (Sandbox Code Playgroud)
使用pymongo我可以使用单个正则表达式执行正则表达式搜索,如下所示:
regex1 = re.compile(r1)
db.collection.find({"column1":regex1})
Run Code Online (Sandbox Code Playgroud)
要么
db.collection.find({"column1":{"$regex":"r1"}})
Run Code Online (Sandbox Code Playgroud)
如何在column1上添加多个正则表达式?
这些不起作用:
{"column1":regex1,"column1":regex2}
{"column1":{"$regex":"r1","$regex":"r2"}}
{"column1":[regex1,regex2]}
{"column1":{"$regex":["r1","r2"]}}
Run Code Online (Sandbox Code Playgroud)
db.collection.find({"column1": {"$all": [re.compile("r1"), re.compile("r2")]}})
Run Code Online (Sandbox Code Playgroud)
还要看看未来的$和运营商.
除非您的正则表达式是类似前缀(/^text/),否则不会使用索引.