我有一个包含{m:1,n:3}
想要更新此集合,例如{m:1,n:3,s:4}
mongodb中的s= m+n
,
db.data.update({},{$set:{s:(m+n)});
但它不起作用,我尝试了多种方法,但仍然没有解决方案。我怎样才能做到这一点?
答案 0 :(得分:1)
通过聚合,您可以$addFields
和$out
加入集合
db.col.aggregate([
{$addFields : {s : {$add:["$m", "$n"]}}},
{$out : "col"}
])
$project
,mongo版本低于3.4
db.col.aggregate([
{$project : {m:1, n:1, s : {$add:["$m", "$n"]}}},
{$out : "col"}
])
结果
> db.col.drop()
true
> db.col.insert({m:2,n:4})
WriteResult({ "nInserted" : 1 })
> db.col.find()
{ "_id" : ObjectId("5a911efc6bb20635697c6b17"), "m" : 2, "n" : 4 }
> db.col.aggregate([{$addFields : {s : {$add:["$m", "$n"]}}},{$out : "col"}])
> db.col.find()
{ "_id" : ObjectId("5a911efc6bb20635697c6b17"), "m" : 2, "n" : 4, "s" : 6 }
>