在社区驱动的 Go 的 Mongo 驱动程序中,即 Mgo,我们可以使用Apply
API 调用来运行涉及$set
or的 MongoDB 查询$inc
。Mgo 中此用例的示例如下:
change := mgo.Change{
Update: bson.M{"$set": bson.M{"phone": "+55 53 8402 8510"}},
ReturnNew: true,
}
_, err = MongoSession.DB("test").C("people").Find(bson.M{"_id": a}).Apply(change, &result)
引用此 API 调用的官方文档:
Apply 运行 findAndModify MongoDB 命令,该命令允许更新、更新插入或删除与查询匹配的文档,并自动返回文档的旧版本(默认)或新版本(当 ReturnNew 为 true 时)。
我目前正在将一个项目从Mgo移植到官方 Mongo Go 驱动程序。但是,我找不到任何运行 findAndModify 命令来实现类似用例的方法。要使用官方驱动程序中的相关方法替换 Apply API,推荐的方法是什么?
我考虑过检查现有代码中“更新”下的查询,并手动使用官方驱动程序中提供的查找/更新/替换方法。但是,有没有更好的方法来做同样的事情?