2015-11-25 16 views
5

Pyongngoを使ってMongoDBのフィールド内の部分文字列を探したかったのですが、PyMongoで部分文字列を見つける

次のクエリは正常に動作し、私が必要とするものである:

db.collection.find({ "Animal": /cat|Dog/i}) 

私はPythonで文字列として値/cat|Dog/iを渡ししようとした場合しかし、それは動作しません。

クエリを複製する方法はありますかPyMongo

注:/cat|Dog/iは、別のコレクションのフィールドの値です。それは「猫の犬」という形です。基本的には、あるフィールドの部分文字列と別のフィールドの部分文字列を一致させたい。

答えて

6

re.compile()機能を使用して正規表現パターンを正規表現オブジェクトにコンパイルする必要があります。

import re 

pat = re.compile(r'cat|Dog', re.I) 
db.collection.find({ "Animal": {'$regex': pat}}) 
関連する問題