首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MongoDB查询:字段不存在或具有特定值

MongoDB查询:字段不存在或具有特定值
EN

Stack Overflow用户
提问于 2011-01-05 23:27:05
回答 1查看 12.7K关注 0票数 21

我想查询mongo集合中的记录,这些记录要么没有名为'scheme‘的字段的值,要么显式地具有'scheme’的值'http‘。听起来很简单,但事实证明这个问题比最初看起来要复杂得多。

由于db.collection.find({'scheme': None})会返回所有未定义'scheme‘的记录(没有索引字段),所以我最初假设以下方法是可行的:

代码语言:javascript
复制
db.collection.find({'scheme': {'$in': ['http', None]}})

但是,这似乎排除了未定义“方案”的值,因此我只能假设它正在搜索方案为“http”或显式定义为None的记录。这看起来有点违反直觉,但我们已经知道了。我的第二次尝试如下:

代码语言:javascript
复制
db.collection.find( {'$or': [{'scheme': {'$exists': False}}, {'scheme': 'http'}]})

这也排除了未定义方案的结果。这一次,我甚至想不出一个逻辑原因为什么这是失败的。

你知道这是为什么失败的吗,以及我如何才能让它按预期工作?

谢谢

编辑:我想我应该注意到我是通过Python (pymongo)执行这个查询的,它解释了None (通过Javascript的null)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-05 23:45:50

解决:这显然是我的mongodb (1.4.4)版本的问题,这个问题在1.6.5中解决了。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4605799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档