mgo - 减少更新并仅查找一个查询

时间:2015-09-17 16:04:08

标签: go mgo

我发现自己必须写两个数据库查询,我想知道是否可以减少到一个。

我正在更新文档,然后在数据库中再次查找文档。是否可以在更新查询的响应中更新和接收完整更新的文档?这样可以保存对db的调用。

我应该解释一下,我保存的文档不是一个完整的文档,这就是为什么我必须从数据库中检索它以获取所有字段。

1 个答案:

答案 0 :(得分:1)

是的,有可能。请查看Query.Apply方法的文档,该方法运行findAndModify MongoDB命令。

直接从文档中,此示例递增计数器并打印其新值:

change := mgo.Change{
        Update: bson.M{"$inc": bson.M{"n": 1}},
        ReturnNew: true,
}
info, err = col.Find(M{"_id": id}).Apply(change, &doc)
fmt.Println(doc.N)