Python 在PyMongo中使用$not$in$regex

Python 在PyMongo中使用$not$in$regex,python,regex,django,mongodb,pymongo,Python,Regex,Django,Mongodb,Pymongo,我想做一个PyMongo,相当于供应商不在('Amazon','eBay','AliBaba') 我可以通过以下方式使其在MongoDB中工作: 'vendor': {'$not': {'$in': [/^Amazon/, /^eBay/, /^AliBaba/]}} 这很有效 在PyMongo,无论我尝试什么,我都没有得到任何结果。它不会抛出任何错误,但也不会返回任何结果 以下是我尝试过的: (一) (二) 我错过了什么?为什么我不能在PyMongo中使用呢?我的猜测是,可能您正在尝试设计一

我想做一个PyMongo,相当于
供应商不在('Amazon','eBay','AliBaba')

我可以通过以下方式使其在MongoDB中工作:

'vendor': {'$not': {'$in': [/^Amazon/, /^eBay/, /^AliBaba/]}}
这很有效

在PyMongo,无论我尝试什么,我都没有得到任何结果。它不会抛出任何错误,但也不会返回任何结果

以下是我尝试过的:

(一)

(二)


我错过了什么?为什么我不能在PyMongo中使用
呢?

我的猜测是,可能您正在尝试设计一个表达式,该表达式与:

^(?!.*\b(Amazon|eBay|AliBaba)\b).*$
不过我不确定

或者可能:

.*?\bAmazon\b.*
.*?\beBay\b.*
.*?\bAliBaba\b.*

如果您希望探索/简化/修改该表达式,它已被删除 在的右上面板上进行了说明 . 如果你愿意,你可以 也可以观看,它将如何匹配 对照一些样本输入


我们的代码可能如下所示:

db.collection.find({name:{'$regex' : '^(?!.*\b(Amazon|eBay|AliBaba)\b).*$', '$options' : 'i'}})
参考文献

.*?\bAmazon\b.*
.*?\beBay\b.*
.*?\bAliBaba\b.*
db.collection.find({name:{'$regex' : '^(?!.*\b(Amazon|eBay|AliBaba)\b).*$', '$options' : 'i'}})