如何通过单个命令修改文档中的两个或多个字段

时间:2015-05-21 13:42:12

标签: go

我试图通过Go(mgo for mongo)将findAndModify添加到文档内的两个字段中

change := mgo.Change{
        Update: bson.M{ "$inc": bson.M{ "score": 20 } },   // here I need  to add 20 to hist_score also
        ReturnNew: true,
}



collection.Find( bson.M{ "_id": id } ).Apply( change, &doc )

如何通过一个应用更新两个字段得分和hist_score?

1 个答案:

答案 0 :(得分:3)

official mongo documentation非常好。将$inc用于多个字段的方式是:

{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }

  

要在嵌入文档或数组中指定字段,请使用点表示法。

因此,基本上,将更新规范更改为:

bson.M{ "$inc": bson.M{ "score": 20, "hist_score": 10 } }