MongoDB,如何将没有可匹配元素的元素检索到数组中?
Posted
技术标签:
【中文标题】MongoDB,如何将没有可匹配元素的元素检索到数组中?【英文标题】:MongoDB, how to retrieve elements which has not a matchable element into an Array? 【发布时间】:2016-06-29 21:34:07 【问题描述】:我有这种元素:
"_id" : 1,
"docs" : [
"key": "blah", "count": 2,
"key": "wow", "count": 10
]
,
"_id" : 2,
"docs" : [
"key": "blah", "count": 11
我想检索未定义 docs.key == "wow"
的元素。在这种情况下,元素"_id": 2
。
这个查询我得到相反的结果:
db.getCollection('myCollection').find(
"docs.key": "wow"
);
我尝试了$exists
和aggregate
的组合,但没有找到合适的解决方案。
【问题讨论】:
相关但不相同:***.com/q/5719408/316700, ***.com/q/16221599/316700 因为在我的示例中,我正在寻找一个复杂元素到一个数组中。 【参考方案1】:你试过$ne操作符
db.getCollection('myCollection').find(
"docs.key": $ne : "wow"
);
【讨论】:
Error: count failed: "ok" : 0, "errmsg" : "$not needs a regex or a document", "code" : 2
【参考方案2】:
你可以这样做:
db.getCollection('myCollection').find(
"docs.key": $ne: "wow"
);
【讨论】:
以上是关于MongoDB,如何将没有可匹配元素的元素检索到数组中?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 MongoDB 数组中检索第一个和最后一个元素并将其设置为不同的字段?
如何从 MongoDB 集合中获取具有匹配键的最后 N 个元素