2013-02-06 28 views
5

私のクエリは次のとおりです。代わりに「ストリング」を含むユーザ名を取得するMongoDBクエリの否定を取得する方法は?

db.users.find({"username" : {$regex : ".*substring.*"}}); 

、私はそれが含まれていないユーザ名が必要です。で

db.test.find({ username: { $not: /substring/ } }); 

のように:

+3

'$ not'演算子を試しましたか? –

+0

$はうまくいきません、ありがとう! – Ognjen

答えて

5

このためには、$ not演算子を使用することができます

> db.test.insert({ username: "Derick Rethans" }); 
> db.test.insert({ username: "Hannes Magunusson" }); 
> db.test.find({ username: { $not: /ag/ } }); 
{ "_id" : ObjectId("511258b36879ad400c26084f"), "username" : "Derick Rethans" } 

は、しかし、あなたは注意する必要があるという正規表現の使用$ notオペレータはインデックスを使用できないようにします。このクエリを非常に頻繁に行う必要がある場合は、スキーマ設計をよく見たいと思うかもしれません。

関連する問題