我发现自己必须写两个数据库查询,我想知道是否可以减少到一个。
我正在更新文档,然后在数据库中再次查找文档。是否可以在更新查询的响应中更新和接收完整更新的文档?这样可以保存对db的调用。
我应该解释一下,我保存的文档不是一个完整的文档,这就是为什么我必须从数据库中检索它以获取所有字段。
答案 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)