【发布时间】:2023-02-02 21:39:11
【问题描述】:
我在 MongoDB 中有一系列文档,如下所示:
{
"_id" : ObjectId("63ceb466db8c0f5500ea0aaa"),
"Partner_ID" : "662347848",
"EarningsData" : [
{
"From_Date" : ISODate("2022-01-10T18:30:00.000Z"),
"Scheme_Name" : "CUSTOMERWINBACKJCA01",
"Net_Amount" : 256,
},
{
"From_Date" : ISODate("2022-02-10T18:30:00.000Z"),
"Scheme_Name" : "CUSTOMERWINBACKJCA01",
"Net_Amount" : 285,
}
],
"createdAt" : ISODate("2023-01-23T16:23:02.440Z")
}
现在,我需要做的是为特定的Partner_ID 获取每个Scheme_Name 每月From_Date 的Net_Amount 的总和。
对于上述文档,输出将如下所示:
[
{
"Month" : 1,
"Scheme_Name" : 'CUSTOMERWINBACKJCA01'
"Net_Amount": 256
},
{
"Month" : 2,
"Scheme_Name" : 'CUSTOMERWINBACKJCA01'
"Net_Amount": 285
}
]
我已尝试实施聚合管道并成功获得每个 Scheme_Name 的 Net_Amount 的总和,但我无法弄清楚如何整合每个月的 From_Date 逻辑。
以下是查询示例:
var projectQry = [
{
"$unwind": {
path : '$EarningsData',
preserveNullAndEmptyArrays: true
}
},
{
$match: {
"Partner_ID": userId
}
},
{
$group : {
_id: "$EarningsData.Scheme_Name",
Net_Amount: {
$sum: "$EarningsData.Net_Amount"
}
}
},
{
$project: {
_id: 0,
Scheme_Name: "$_id",
Net_Amount: 1
}
}
];
【问题讨论】:
标签: javascript node.js mongodb mongoose aggregation-framework