使用嵌套对象表示法查询 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/