【发布时间】:2021-05-24 15:23:52
【问题描述】:
删除猫鼬中的重复项后,我很难对价值求和。我有这样的数据:
{
"_id": "6006c7f624d9e1364051b0aa",
"paidFrom": "5fec1b5d124c58c6ddacfd02",
"amount": 234,
},
{
"_id": "600e63f2545087cbddfe370a",
"paidFrom": "5fec1b5d124c58c6ddacfd02",
"amount": 25000,
},
{
"_id": "600e7c16545087cbddfe370b",
"paidFrom": "5ff56473609e930518cb7b67",
"amount": 5000,
},
我想使用聚合删除重复数据,我想用相同的支付值求和。
这是我的代码:
const dataAP = await AccountPayment.aggregate([
{
$match: filterDate
},
{
$group: {
_id: null,
paidFrom: {
"$addToSet" : "$paidFrom",
},
amount: {$sum: "$amount"}
}
},
],
function (err, res)
{
if (err) {}
console.log(err)
});
但该代码给了我结果:
"status": "success",
"data": [
{
"_id": null,
"paidFrom": [
"5ff56473609e930518cb7b67",
"5fec1b5d124c58c6ddacfd02",
"5ff54212609e930518cb7b65"
],
"amount": 60234
}
]
}
我的预期结果是:
"status": "success",
"data": [
{
"_id": null,
"paidFrom": [
"5ff56473609e930518cb7b67",
],
"amount": 20000
},
{
"_id": null,
"paidFrom": [
"5fec1b5d124c58c6ddacfd02",
],
"amount": 20000
},
{
"_id": null,
"paidFrom": [
"5ff54212609e930518cb7b65",
],
"amount": 20234
},
]
}
我希望金额是重复值的总和,所以我可以计算重复值。有人可以告诉我有什么问题吗?谢谢
【问题讨论】:
-
为什么
paidFrom需要是一个数组?如果我正确理解了这个问题,它总是只有一项。
标签: javascript node.js mongoose aggregate