如何查询嵌套对象?

如何查询嵌套对象?

当使用嵌套对象表示法查询MongoDB时,我遇到了一个问题:

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

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


回首忆惘然
浏览 655回答 3
3回答

Helenr

db.messages.find( { headers : { From: "reservations@marriott.com" } } )此查询的文档headers 等号 { From: ... },即不包含其他字段。db.messages.find( { 'headers.From': "reservations@marriott.com" }  )这只会看到headers.From字段,不受包含在headers.点符号文档

慕田峪9158850

两种查询机制以不同的方式工作,如医生在部分子文件:当字段保存嵌入的文档(即,子文件),您可以指定整个子文件字段的值,或“到达”子文件使用点表示法为子文件:如果子文档与指定的子文档(包括字段顺序)完全匹配,则子文档中的相等匹配将选择文档。在下面的示例中,查询匹配字段生成器的值是仅包含字段的子文档的所有文档。company有价值'ABC123'和田野address有价值'123 Street',按确切顺序:db.inventory.find( {     producer: {         company: 'ABC123',         address: '123 Street'     }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB