【发布时间】:2022-01-24 16:46:39
【问题描述】:
{
"id":"",
"data0":"",
"data1":[
{
"data2":[
{
"name":"Man 1",
"_id":"5e8c242f751d0074ca004a"
},
{
"name":"Man 2",
"_id":"605d403dab6100e1395697"
},
{
"name":"Man 3",
"_id":"5e8c2d39751d0074ca0050"
}
]
},
{
"data2":[
{
"name":"Man 4",
"_id":"5ed4efc71224005abea7eb"
},
{
"name":"Man 5",
"_id":"5e8c249539751d04ca0056"
},
{
"name":"Man 6",
"_id":"5e8c239a39751d0074c046"
}
]
}
]
}
上面的文档是我的数据结构。有没有一种方法可以过滤名称为 Man 3 的数组 (data1) 的元素。我只想显示名称为 Man 3 的数组元素。我有这段代码,但它不起作用。这是示例。
pipeLine.push(
{ $project: {
'data1' : {
$filter: {
input: '$data1.data2',
as: 'test',
cond: { $eq : ['$$test.name', "Man 3" ]}
}
}
}}
)
预期的输出是这样的。
{
"id":"",
"data0":"",
"data1":[
{
"data2":[
{
"name":"Man 1",
"_id":"5e8c242f751d0074ca004a"
},
{
"name":"Man 2",
"_id":"605d403dab6100e1395697"
},
{
"name":"Man 3",
"_id":"5e8c2d39751d0074ca0050"
}
]
}
]
}
【问题讨论】:
标签: node.js mongodb aggregation-framework