【发布时间】:2019-06-12 18:53:15
【问题描述】:
我正在定义一个 mongodb 聚合表达式,它将存储在 JSON 中并执行。 目前的聚合表达式大多是简单的分组和投影。
例如下面是在后续日期分组的聚合查询
[{
"$group": {
"_id": {
"day_of_month": {
"$dayOfMonth": "$data.follow_up_date"
},
"month": {
"$month": "$data.follow_up_date"
},
"year": {
"$year": "$data.follow_up_date"
}
},
"total_leads": {
"$sum": 1
},
"total_loan_amount": {
"$sum": "$data.loan_amount"
},
"follow_up_date": {
"$push": "$data.follow_up_date"
},
"data": {
"$push": "$data"
}
}
},
{
"$project": {
"_id": 1,
"day_of_month": "$_id.day_of_month",
"month": "$_id.month",
"year": "$_id.year",
"total_leads": "$total_leads",
"total_loan_amount": "$total_loan_amount",
"follow_up_date": {
"$arrayElemAt": ["$follow_up_date", 0]
},
"data": "$data"
}
}]
在这个聚合表达式中,我想添加基于动态日期的过滤器,这将允许我仅获取当前月份或当前日期的日期。
例如
[{
"$group": {
"_id": {
"day_of_month": {
"$dayOfMonth": "$data.follow_up_date"
},
"month": {
"$month": "$data.follow_up_date"
},
"year": {
"$year": "$data.follow_up_date"
}
},
"total_leads": {
"$sum": 1
},
"total_loan_amount": {
"$sum": "$data.loan_amount"
},
"follow_up_date": {
"$push": "$data.follow_up_date"
},
"data": {
"$push": "$data"
}
}
},
{
//something like this
"_id.day_of_month" : {$month : new Date()}
},
{
"$project": {
"_id": 1,
"day_of_month": "$_id.day_of_month",
"month": "$_id.month",
"year": "$_id.year",
"total_leads": "$total_leads",
"total_loan_amount": "$total_loan_amount",
"follow_up_date": {
"$arrayElemAt": ["$follow_up_date", 0]
},
"data": "$data"
}
}]
有没有办法添加动态日期过滤器?
【问题讨论】:
标签: mongodb aggregation-framework