我如何在MongoDB中使用“不喜欢”运算符?
我使用SQL“Like”运算符使用pymongo,
db.test.find({'c':{'$regex':'ttt'}})
但是我怎样才能使用'不喜欢'运营商?
我试过了
db.test.find({'c':{'$not':{'$regex':'ttt'}})
从文档 :
$ not操作符不支持$ regex操作符的操作。 而是使用//或者在你的驱动程序接口中,使用你的语言的正则expression式来创build正则expression式对象。 考虑以下使用模式匹配expression式的示例//:
db.inventory.find( { item: { $not: /^p.*/ } } )
编辑(@idbentley):
{$regex: 'ttt'}
通常相当于mongodb中的/ttt/
,所以你的查询将变成db.test.find({c: {$not: /ttt/}}
EDIT2(@KyungHoon Kim):
在Python中,这个工作: 'c':{'$not':re.compile('ttt')}
你可以使用不包含单词的正则expression式。 也可以使用$options => i
进行不区分大小写的search
不包含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/