在聚合框架内,对于每个文档来说,以某种方式是可能的,如下所示:
{
"Title": "Number orders",
"2021-03-16": 3,
"2021-03-15": 6,
"2021-03-19": 1,
"2021-03-14": 19
}
获取这样的新文档?
{
"Title": "Number orders",
"2021-03-16": 3,
"2021-03-15": 6,
"2021-03-19": 1,
"2021-03-14": 19
"Total": 29
}
基本上,我想要一个新字段,其中包含整数字段的所有值的总和。
要考虑的另一件事是日期字段是动态的,因此一周可能像示例中的那样,下一周字段将变得像
{
"Title": "Number orders",
"2021-03-23": 3,
"2021-03-22": 6,
"2021-03-26": 1,
"2021-03-21": 19
}
谢谢!
最佳答案
演示 - https://mongoplayground.net/p/724nerJUQtK
$$ROOT
是整个文档,使用 $addFields
添加 total
使用 $sum
添加它们使用 $unset
allData
db.collection.aggregate([
{ $addFields: { allData: { "$objectToArray": "$$ROOT" } } } },
{ $addFields: { "total": { $sum: "$allData.v" } } },
{ $unset: "allData" }
])
关于MongoDB 所有具有整数值的字段的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66901413/