Answers:
从文档:
$ not运算符不支持$ regex运算符的操作。而是使用//或在驱动程序界面中,使用语言的正则表达式功能来创建正则表达式对象。考虑下面的示例,该示例使用模式匹配表达式//:
db.inventory.find( { item: { $not: /^p.*/ } } )
编辑(@idbentley):
{$regex: 'ttt'}
通常等效/ttt/
于mongodb,因此您的查询将变为:
db.test.find({c: {$not: /ttt/}}
EDIT2(@KyungHoon Kim):
在python中,以下一项有效:
'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
运算符的组合似乎对我有用。