我的查询是:
db.users.find({"username" : {$regex : ".*substring.*"}});
我需要不包含“子字符串”的用户名,而不是获取包含“子字符串”的用户名。
我的查询是:
db.users.find({"username" : {$regex : ".*substring.*"}});
我需要不包含“子字符串”的用户名,而不是获取包含“子字符串”的用户名。
为此,您可以使用 $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运算符的使用会阻止索引的使用。如果您需要经常执行此查询,您可能需要仔细查看您的架构设计。