与子文档项目的计算求和



我有如下发票模型

{
...
"itemDetails": [
            {
                "item":  "593a1a01bbb00000043d9a4c",
                "purchasingPrice": 100,
                "sellingPrice": 150,
                "qty": 200,
                "_id": "59c39c2a5149560004173a05",
                "discount": 0
            }
        ],
        "payments": [],
...
}

我需要计算商品总和或售价 - 折扣。

我看到了$sum操作员,但找不到与item._id分组的方法

如果您希望获得按数组"内部"属性分组的总和,那么您总是需要$unwind。如果你需要在通过$sum累加之前应用"math",那么使用数学运算符。例如在这种情况下$subtract

Model.aggregate([
  { "$unwind": "$itemDetails" },
  { "$group": {
    "_id": "$itemDetails.item",
    "salePrice": { 
      "$sum": {
        "$subtract": [ "$itemDetails.sellingPrice", "$itemDetails.discount" ]
      }
    }
  }}
])

当然,假设itemDetails.item实际上是不同发票中的项目共有的。

相关内容

  • 没有找到相关文章

最新更新