如何根据同一 collection 中特定文档的值计算所有文档中的字段?

How do I calculate a field in all documents based on a value of a particular document in the same collection?

我是 MongoDb 的新手,正在尝试在其中实现一些基本计算。我有collection,计算如下

{ "_id" : 1, "value" : 10}
{ "_id" : 2, "value" : 20}
{ "_id" : 3, "value" : 20}
{ "_id" : 4, "value" : 30}
{ "_id" : 5, "value" : 30}
{ "_id" : 6, "value" : 30}

我想将“_id”:1 的值添加到 collection 中文档的所有值字段,并使用计算结果创建一个新字段。所以我要找的最终结果如下。

{ "_id" : 1, "value" : 10, "sumup":20 }
{ "_id" : 2, "value" : 20, "sumup":30 }
{ "_id" : 3, "value" : 20, "sumup":30 }
{ "_id" : 4, "value" : 30, "sumup":40 }
{ "_id" : 5, "value" : 30, "sumup":40 }
{ "_id" : 6, "value" : 30, "sumup":40 }

您可以在 mongo shell:

中尝试这个
db.collection.aggregate([
    { 
        "$project": { 
            "value": 1, 
            "sumup": { 
                "$add": [ "$value", (db.collection.findOne({"_id": 1})).value ] 
            } 
        } 
    }
])