Like
を使用してSQL pymongo
演算子を使用できます。
db.test.find({'c':{'$regex':'ttt'}})
しかし、どのようにNot Like
演算子を使用できますか?
私は試した
db.test.find({'c':{'$not':{'$regex':'ttt'}})
しかし、エラーが発生しました:
OperationFailure:$ notに正規表現を含めることはできません
docs から:
$ not演算子は、$ regex演算子を使用した操作をサポートしていません。代わりに//またはドライバーインターフェイスで使用し、言語の正規表現機能を使用して正規表現オブジェクトを作成します。パターンマッチ式//を使用する次の例を考えてみましょう。
db.inventory.find( { item: { $not: /^p.*/ } } )
編集(@idbentley):
{$regex: 'ttt'}
は通常、mongodbの/ttt/
と同等であるため、クエリはdb.test.find({c: {$not: /ttt/}}
になります。
EDIT2(@KyungHoon Kim):
Pythonでは、これは機能します:'c':{'$not':re.compile('ttt')}
Wordを含まない正規表現を使用できます。また、$options => i
を使用して、区別しない検索の場合に使用できます。
含まないstring
db.collection.find({name:{'$regex' : '^((?!string).)*$', '$options' : 'i'}})
大文字と小文字を区別しない正確なstring
db.collection.find({name:{'$regex' : '^string$', '$options' : 'i'}})
string
で始まる
db.collection.find({name:{'$regex' : '^string', '$options' : 'i'}})
string
で終わる
db.collection.find({name:{'$regex' : 'string$', '$options' : 'i'}})
string
を含む
db.collection.find({name:{'$regex' : 'string', '$options' : 'i'}})
これをブックマークとして保持し、必要に応じて他の変更の参照として使用します。 http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/