【发布时间】:2019-04-18 15:00:43
【问题描述】:
我有一个集合,其中 docs 有子字段。 children 字段是一个数组,其中包含具有不同 _id 的对象。子 _id 在一个嵌套数组中是唯一的,但在 docs 数组之间可以找到相同的子 _id。
示例集合:
[{
"_id" : 1,
"name" : "Chocolate",
"children" : [
{ "_id" : E, "bqt" : 23.26 },
{ "_id" : B, "bqt" : 0.093 },
{..many children..}
]
},{
"_id" : 2,
"name" : "Cheese",
"children" : [
{ "_id" : A, "bqt" : 4.55 },
{ "_id" : D, "bqt" : 0.044 },
{..many children..}
]
},{
"_id" : 3,
"name" : "Pizza",
"children" : [
{ "_id" : D, "bqt" : 9.35 },
{ "_id" : E, "bqt" : 2.31 },
{..many children..}
]
}]
如何提出以下请求:
“哪些文档包含子 'E',匹配子的 'bqt' 值是多少?”仅将每个文档的匹配子文档归还给我,而不是全部文档
示例结果:
[{
"_id" : 1,
"name" : "Cheese",
"children" : [
{ "_id" : E, "bqt" : 23.26 }
]
},{
"_id" : 3,
"name" : "Pizza",
"children" : [
{ "_id" : E, "bqt" : 2.31 }
]
}]
更紧凑的示例结果:
[{
"_id" : 1,
"name" : "Cheese",
"children.bqt" : 23.26
},{
"_id" : 3,
"name" : "Pizza",
"children.bqt" : 2.31
}]
【问题讨论】:
标签: arrays mongodb mongodb-query