使用mongodb中该Collection的数据更新集合

时间:2018-02-24 08:06:29

标签: mongodb mongodb-query updates

我有一个包含{m:1,n:3}

等数据的集合

想要更新此集合,例如{m:1,n:3,s:4}

mongodb中的s= m+n

为此,我试过

db.data.update({},{$set:{s:(m+n)}); 

但它不起作用,我尝试了多种方法,但仍然没有解决方案。我怎样才能做到这一点?

1 个答案:

答案 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 }
>