面试题答案
一键面试在MongoDB中,你可以使用如下聚合管道来实现按category
分组并计算每个分组下products
数组中所有产品价格的总和:
db.collection.aggregate([
{
$unwind: "$products"
},
{
$group: {
_id: "$products.category",
totalPrice: { $sum: "$products.price" }
}
}
]);
$unwind
阶段:$unwind
操作符将products
数组展开,使每个数组元素成为一个独立的文档。这样,后续就可以对每个产品文档进行操作。
$group
阶段:_id
字段根据products.category
进行分组。totalPrice
字段使用$sum
累加器来计算每个分组下products.price
的总和。
这样,聚合操作会按category
分组,并计算出每个分组下产品价格的总和。