gpt4 book ai didi

node.js - 如何获取特定数字字段与所有匹配记录的总和

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:56 25 4
gpt4 key购买 nike

我将 Mongoose 与node.js一起使用,我有交易模型和发票模型。我想获取所有具有特定发票 ID 的记录。我使用此查询来获取发票的匹配交易。

Transaction.find({invoice_id: invoiceId})

我正在以这种形式获取记录

[
{
"_id": "5795e3f4f4a0fb8c1dff20ad",
"description": "This is a transcation",
"invoice_id": "5795db00bfa9d366194a454d",
"amount": 50
},
{
"_id": "5795e3faf4a0fb8c1dff20ae",
"description": "This is a transcation",
"invoice_id": "5795db00bfa9d366194a454d",
"amount": 100
}
]

但问题是我还想通过交易数组的每个对象中的“金额”字段值之和来获取totalAmount。我想要的结果是

[
{
"_id": "5795e3f4f4a0fb8c1dff20ad",
"description": "This is a transcation",
"invoice_id": "5795db00bfa9d366194a454d",
"amount": 50
},
{
"_id": "5795e3faf4a0fb8c1dff20ae",
"description": "This is a transcation",
"invoice_id": "5795db00bfa9d366194a454d",
"amount": 100
},
{
totalAmount: 150
}
]

我使用 $sum 聚合函数,但我不知道我的问题将如何解决。

最佳答案

为此目的,您应该使用聚合和 $group

  Transaction.aggregate([{
$group: {
_id:{ invoice_id:"$invoice_id"
},
count: {
$sum: 1
},
totalAmount: { $sum: "$amount" },
}
}]).exec()

关于node.js - 如何获取特定数字字段与所有匹配记录的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38565719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com