回答:
ドキュメントから:
$ not演算子は、$ regex演算子を使用した操作をサポートしていません。代わりに//を使用するか、ドライバーインターフェイスで、言語の正規表現機能を使用して正規表現オブジェクトを作成します。パターンマッチ式//を使用する次の例を検討してください。
db.inventory.find( { item: { $not: /^p.*/ } } )
編集(@idbentley):
{$regex: 'ttt'}
一般的に/ttt/
はmongodbと同じなので、クエリは次のようになります。
db.test.find({c: {$not: /ttt/}}
EDIT2(@KyungHoonキム):
python、1つの作品以下:
'c':{'$not':re.compile('ttt')}
{$regex: 'ttt'}
にするため/ttt/
に、これは一般的にmongodbと同じであるため、クエリはになりdb.test.find({c: {$not: /ttt/}}
ます。
'c':{'$not':re.compile('ttt')}
。もちろん、あなたが再インポートする必要が
単語を含まない正規表現でできます。また、$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/
$not
and$regex
演算子を組み合わせることでうまくいくようです。