我想通过计算得到一些值。
样本文件:
{
"_id": ObjectId("5407c76b7b1c276c74f90524"),
"field": "x",
"values": 1
}{
"_id": ObjectId("5407c76b7b1c276c74f90525"),
"field": "x",
"values": 1
}{
"_id": ObjectId("5407c76b7b1c276c74f90526"),
"field": "z",
"values": 1
}{
"_id": ObjectId("5407c76b7b1c276c74f90527"),
"field": "x",
"values": 1
}{
"_id": ObjectId("5407c76b7b1c276c74f90528"),
"field": "z",
"values": 1
}{
"_id": ObjectId("5407c76b7b1c276c74f90529"),
"field": "y",
"values": 1
}
预期结果:
{
"_id": ObjectId("5407c76b7b1c276c74f90524"),
"field": "x",
"values": 1,
"sum": 6
}{
"_id": ObjectId("5407c76b7b1c276c74f90525"),
"field": "x",
"values": 1,
"sum": 6
}{
"_id": ObjectId("5407c76b7b1c276c74f90526"),
"field": "z",
"values": 1,
"sum": 6
}{
"_id": ObjectId("5407c76b7b1c276c74f90527"),
"field": "x",
"values": 1,
"sum": 6
}{
"_id": ObjectId("5407c76b7b1c276c74f90528"),
"field": "z",
"values": 1,
"sum": 6
}{
"_id": ObjectId("5407c76b7b1c276c74f90529"),
"field": "y",
"values": 1,
"sum": 6
}
我想计算所有“值”字段的总和,并将此值作为“总和”字段添加到所有文档中。我该怎么做 ?我尝试了 $group 操作,使用 $group 操作,我只得到一个文件。
我正在尝试获取所有具有计算值的文档。
需要使用$setWindowFields stage.
db.collection.aggregate([
{
$setWindowFields: {
output: {
"sum": {
$sum: "$values",
"window": {
"documents": ["unbounded","unbounded"]
}
}
}
}
}
])