【发布时间】:2018-01-12 23:12:37
【问题描述】:
文件:
[
{
name: 'abc'
length: 25,
area: 10
},
{
name: 'abc',
length: 5
}
]
聚合查询后的输出:
[
{
count: 2,
summarizedLength: 30,
summarizedArea: null,
_id: {
name: 'abc'
}
}
]
应该总结length 和area。但前提是所有文档都具有area 或length 属性。
因此,如果分组属性中缺少任何length 属性,则summarizedLength 值应为null/undefined/not exisitng,与area 相同。
我试过这个:
let query = mongoose.model('mycollection').aggregate([
{
$group: {
_id: {
name: $name
},
count: {
$sum: 1
},
summarizedLength: { $sum: "$length" },
summarizedArea: { $sum: "$area" },
}
}
]);
问题是,如果缺少任何属性,我需要取消$sum。这可能吗?
【问题讨论】:
标签: mongodb aggregation-framework