题
我想查询蒙戈集合,它没有任何一个名为“方案”字段的值,或明确有“计划”价值“HTTP”记录。声音很容易的,但这个问题已经被证明比第一次出现的更加复杂。
由于db.collection.find({'scheme': None})
返回其中“方案”是未定义的(没有索引字段)的所有记录,我最初假设以下将工作:
db.collection.find({'scheme': {'$in': ['http', None]}})
然而,这似乎排除其中“方案”是未定义的值,因此我只能假设它是为记录在搜索其中方案要么是“http”或明确地定义为None
。这似乎有点违反直觉,但我们有它。我的第二个尝试是以下内容:
db.collection.find( {'$or': [{'scheme': {'$exists': False}}, {'scheme': 'http'}]})
这也排除了导致其中方案是未定义。这一次,我甚至不能想象为什么这个失败一个合乎逻辑的理由。
任何想法,为什么这是失败的,以及如何我可以根据需要得到它的工作?
由于
编辑:只是想我会注意我通过的Python(pymongo),这也解释了None
(超过JavaScript的null
)执行这个查询
解决方案
解决:这是显然的我的版本mongodb的(1.4.4)的问题,该问题是这样解决的1.6.5
不隶属于 StackOverflow