【发布时间】:2018-09-24 19:37:39
【问题描述】:
使用在以下位置找到的示例:
https://docs.mongodb.com/manual/tutorial/query-array-of-documents/
拥有:
db.inventory.insertMany( [
{ item: "journal", instock: [ { warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 } ] },
{ item: "notebook", instock: [ { warehouse: "C", qty: 5 } ] },
{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 15 } ] },
{ item: "planner", instock: [ { warehouse: "A", qty: 40 }, { warehouse: "B", qty: 5 } ] },
{ item: "postcard", instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);
及以后查询:
db.inventory.find( { "instock": { warehouse: "A", qty: 5 } } )
在“instock”子文档中返回一组具有仓库 = A 和 qty=5 的文档
但仅查询包含 {warehouse: "A"} 的内容不会返回任何结果
db.inventory.find( { "instock": { warehouse: "A" } } )
现在,将其更改为:
db.inventory.find( { "instock.warehouse": "A" })
解决
两者不应该一样吗? 关于语义的任何信息?
另一方面,在另一个子文档列表(嵌入的嵌入)中的子文档列表中查找字段值的正确方法是什么
谢谢!
【问题讨论】:
标签: mongodb mongoose querying subdocument