我想查询蒙戈集合,它没有任何一个名为“方案”字段的值,或明确有“计划”价值“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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top