我如何在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/