【发布时间】:2021-08-25 23:57:46
【问题描述】:
我正在编写一个查询匹配跨越两年的几个月范围内的文档。之后我想在另一个字段上使用聚合函数,但不想避免重复。例如,我想合计从 2020 年开始到 2021 年结束的 10 月到 8 月的两个字段。如何在我的合计中排除 2020 年 1 月到 8 月的月份?到目前为止,我有以下代码。
[{
$match: {
"Calendar Year": {
$in: [2020, 2021]
},
"Month": {
$in: ["Oct", "Nov", "Dec", "Jan",
"Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug"
]
}
}
}, {
'$group': {
'_id': {
'Month': '$Month',
'Facility': '$Facility'
},
'Gal_Treated': {
'$sum': '$MGal Treated'
},
'Cr_Mass_tot': {
'$sum': '$Chrome (kg)'
}
}
}
}]
示例数据结构文档:
_id:6126a7afe24933f84da03a7f
Calendar Year:1991
Fiscal Year:1991
Quarter:4
Month:"Sep"
Facility:"SVE (A)"
Total mass (kg):140
Carbon Tet (kg):140
预期回报:
_id:Object
MGal_treated:248.5
Cr_mass_treated:11.0
谢谢!
【问题讨论】:
-
您能否提供一些测试数据模型并展示预期结果。
-
于婷 测试数据模型及预期结果见更新帖。
标签: mongodb aggregate grouping partitioning