mongodb - 如何查询嵌套对象?

标签 mongodb syntax nested mongodb-query bson

使用嵌套对象表示法查询 mongoDB 时遇到问题:

db.messages.find( { headers : { From: "reservations@marriott.com" } } ).count()
0
db.messages.find( { 'headers.From': "reservations@marriott.com" }  ).count()
5

我看不出我做错了什么。我期望嵌套对象表示法返回与点表示法查询相同的结果。我哪里错了?

最佳答案

db.messages.find( { headers : { From: "reservations@marriott.com"} } )

此查询将查询 headers 等于 { From: ... } 的文档,即不包含其他字段。

<小时/>

db.messages.find( { 'headers.From': "reservations@marriott.com"} )

这仅查看 headers.From 字段,不受 headers 中包含或缺少的其他字段的影响。

<小时/>

Dot-notation docs

关于mongodb - 如何查询嵌套对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45604150/

相关文章:

cakephp - 嵌套数据上的 saveAll()

MongoDB 查询 - 返回切片数组

node.js - Mongodb 无法启动 - 原因 : errno:111 Connection refused

Java int 相等性不一致?

c - C 中的数组创建语法

syntax - 从程序员的角度来看,Erlang 是一种简洁的语言吗?

Swift - 编码和解码字典 [String :Any] into plist

d3.js - 如何在 d3 圆形包装中拖动带有子节点的节点?

mongodb - 在 Ubuntu 12.04 上通过 mongodb-10gen 包安装时,Mongo 不运行

mongodb - 如何从 'n' 数量的服务器中识别 MongoDB 主服务器