2011-06-07 39 views
1

我需要將一些MySQL轉換爲mongodb。我有一個MySQL查詢與一個列上的多個正則表達式匹配。是否有可能用mongodb做同樣的事情?與pymongo執行多個正則表達式匹配到相同的索引

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"]}} 

回答

5
db.collection.find({"column1": {"$all": [re.compile("r1"), re.compile("r2")]}}) 

而且看看未來​​。

順便說一句,除非你的正則表達式是類似前綴的(/^text/)索引won't be used