mongodb - 如何查询嵌套对象?

使用嵌套对象表示法查询 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 equals { From: ... } 的文档,即不包含其他字段。


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

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


Dot-notation docs

https://stackoverflow.com/questions/16002659/

相关文章:

mongodb - 在两个不同的集合中生成重复的 Mongo ObjectId 的可能性?

mongodb - 如何为 MongoDB 集合中的所有文档选择单个字段?

mongodb - 对于小型 .NET 应用程序,什么是好的数据库选择?

database - 如何使用mongoimport导入csv

javascript - 如何在mongodb中的对象数组中搜索

arrays - 如何在 mongodb 中更新多个数组元素

mongodb - 更改 MongoDB 数据存储目录

mongodb - 无法启动 mongodb 本地服务器

mongodb - 根据日期返回查询

node.js - 比较 Mongoose _id和字符串