7

私の質問は:

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

'substring'を含むユーザー名を取得する代わりに、それを含まないユーザー名が必要です。

4

1 に答える 1

9

これには、$not 演算子を使用できます。

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

のように:

> 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演算子を使用すると、インデックスを使用できなくなることに注意する必要があります。このクエリを頻繁に実行する必要がある場合は、スキーマの設計をよく確認する必要があります。

于 2013-02-06T13:27:52.430 に答える