2016-10-12 8 views
0

私はMongoDBでデータベースをセットアップしており、大部分のドキュメントには*で始まり#で終わる特別なコードが含まれています。 MongoDbコマンドラインで次のクエリを使用するとうまくいきますが、Pythonスクリプトで使用しようとすると機能しません。PyMongo .find()特殊文字

cursor = collect.find({$and:[{"key":/.*\*.*/},{"key":/.*\#.*/}]}) 

私はこの問題がクエリの#にあると思っていますが、私はそれを ""で囲むと機能しません。

cursor = collect.find({'$and':[{"key":'/.*\*.*/'},{"key":'/.*\#.*/'}]}) 

私はそれを実行しようとすると、構文エラーが表示されるので、私は「」は約$とと一致するように、最初の式を置くことに注意してください。あなたは正規表現を使用してクエリを実行したい場合は

おかげ

+0

を使用することができます。 –

答えて

0

は、その後、あなたはPythonの正規表現オブジェクトを作成する必要があります。この場合、文字列は//で囲まれていないことに注意してください。

import re 
cursor = collect.find({'$and':[{"key":re.compile('.*\*.*')},{"key":re.compile('.*\#.*')}]}) 

また、あなたはちょうどあなたの文書のサンプルを与えることができます$regexオペレータ

cursor = collect.find({'$and':[{"key": {"$regex": '.*\*.*'}},{"key": {"$regex": '.*\#.*'}}]}) 
+0

よろしくお願いします。 – Dunny