我有一个Mongo DB数据集,如下所示:
{
"_id" : ObjectId("5a8a75cdec129c86c6a2aaca"),
"asset" : "121",
"A" : 6,
"C" : 12,
"B" : 4,
"D" : 8,
"finalAB" : "",
"finalCD" : "",
},
{
"_id" : ObjectId("5a8a75cdec129c86c6a2aaca"),
"asset" : "122",
"A" : 8,
"C" : 14,
"B" : 6,
"D" : 10,
"finalAB" : "",
"finalCD" : "",
}......upto 4k Entry Like this
现在我想创建MongoDB函数,它可以对“finalAB”进行整表计算。 “finalCD”
注意:finalAB = A + B且finalCD = C + D.
感谢任何帮助
答案 0 :(得分:1)
您无法在此处使用update
,因为您在更新中引用了其他字段,但您可以尝试使用聚合框架:
db.col.aggregate([
{
$addFields: {
finalAB: { $add: [ "$A", "$B" ] },
finalCD: { $add: [ "$C", "$D" ] },
}
},
{
$out: "col"
}
])
$addFields只需用新值替换finalAB
和finalCD
。 $out是一种将聚合输出重定向到新集合的方法。这就是如何替换(更新)现有集合的方法。
答案 1 :(得分:0)
使用聚合查询:
app.get("/getTotal",function(req,res){
YourModel.aggregate([
{
$addFields: {
finalAB: { $add: [ "$A", "$B" ] },
finalCD: { $add: [ "$C", "$D" ] },
}
},
{
$group:{ _id:null,
finalAB:{ $sum: "$finalAB"},
finalCD:{ $sum: "$finalCD"}
}
}
],function(err,result){
res.json(result);
});
});
使用完整链接:https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/