mongo DB にこのような構造のドキュメントがあり、アクティブなサブドキュメント (アクティブな車とアクティブな果物) のみを表示するようにフィルター処理したいと考えています。
{
"name":"Andre",
"fruits":[
{
"active":true,
"fruitname":"apple"
},{
"active":false,
"fruitname":"banana"
}
],
"cars":[
{
"active":false,
"carname":"ford"
},{
"active":true,
"carname":"GM"
},
]
}
これが私の望む結果です。
{
"name":"Andre",
"fruits":[
{
"active":true,
"fruitname":"apple"
}
],
"cars":[
{
"active":true,
"carname":"GM"
},
]
}
試してみましAggregate
たが、車や果物がアクティブになっていると、何も返されません。
m_object.aggregate([
{ $match : {
"name": "andre"
}},
{ $unwind : "$fruits" },
{ $unwind : "$cars" },
{ $match : {
'fruits.active':{$eq: true}
}},
{ $match : {
'cars.active':{$eq: true}
}},
{ $group : {
"name": "$name",
cars: { $addToSet : "$cars" }
fruits: { $addToSet : "$fruits" }
}}
], function (err, result) {
if (err) {
console.log(err);
return;
}
console.log('result');
});
"active":false
それらのサブドキュメントでサブドキュメントを省略する方法はありますか?