我有数据
{
"_id" : 42,
"status" : "active",
"items" : [
{
"sku" : "00e8da9b",
"qty" : 1,
"item_details" : {
"A" : 1,
"B" : 2
}
},
{
"sku" : "0ab42f88",
"qty" : 2,
"item_details" : {
"A" : 1,
"B" : 3
}
},
{
"sku" : "0ab42f88",
"qty" : 3,
"item_details" : {
"C" : 3,
"D" : 4
}
},
{
"sku" : "0ab42f88",
"qty" : 4,
"item_details" : {
"D" : 5,
"E" : 6
}
}
]
}
{
"_id" : 43,
"status" : "active",
"items" : [
{
"sku" : "00e8da9b",
"qty" : 1,
"item_details" : {
"A" : 1,
"C" : 2
}
},
{
"sku" : "0ab42f88",
"qty" : 4,
"item_details" : {
"D" : 2,
"E" : 3
}
}
]
}
我想计算每个sku的数量总和。
答案 0 :(得分:1)
如果您希望得到qty
的{{1}}总和,您可以使用聚合轻松实现这一目标:
sku
结果:
db.collection.aggregate(
[
{
$unwind: "$items"
},
{
$group: {
_id: "$items.sku",
Count: {$sum: "$items.qty"}
}
}
]
);