我发票模型如下
{
...
"itemDetails": [
{
"item": "593a1a01bbb00000043d9a4c",
"purchasingPrice": 100,
"sellingPrice": 150,
"qty": 200,
"_id": "59c39c2a5149560004173a05",
"discount": 0
}
],
"payments": [],
...
}
我需要计算项目副总金额或卖价 - 折扣。
我看到了$sum
运营商,但无法找到与item._id
进行分组的方式
答案 0 :(得分:1)
如果您希望获得按房产分组的总数"内部"一个数组,那么你总是需要$unwind
。如果你需要申请"数学"在通过$sum
累积之前,请使用math operators。例如$subtract
在这种情况下:
Model.aggregate([
{ "$unwind": "$itemDetails" },
{ "$group": {
"_id": "$itemDetails.item",
"salePrice": {
"$sum": {
"$subtract": [ "$itemDetails.sellingPrice", "$itemDetails.discount" ]
}
}
}}
])
当然假设itemDetails.item
实际上与不同发票中的项目相同。