mongodb - golang mongodb migrate database 库 mongo 到 mgo

标签 mongodb go mgo

我想将数据库库从 github.com/mongodb/mongo-go-driver/mongo 更改为 github.com/globalsign/mgo,我的问题是我不知道如何为新库转换此代码:

import "github.com/mongodb/mongo-go-driver/mongo/options"
res, err := s.totals().UpdateOne(ctx,
        bson.M{"contract_id": cID, "date": date},
        bson.M{"$inc": bson.M{"value": value}},
        options.Update().SetUpsert(true),
    )

我当前的代码:

collection := s.totals()
err := collection.Update(
    bson.M{"contract_id": contractID, "date": date},
    bson.M{"$inc": bson.M{"value": value}},
    //options.Update().SetUpsert(true),
)

我如何转换此 options.Update().SetUpsert(true) 以便在新库中使用?

最佳答案

只需使用 Collection.Upsert()方法而不是 Collection.Update() :

info, err := collection.Upsert(
    bson.M{"contract_id": contractID, "date": date},
    bson.M{"$inc": bson.M{"value": value}},
)

引用 Collection.Upsert() 的文档:

Upsert finds a single document matching the provided selector document and modifies it according to the update document. If no document matching the selector is found, the update document is applied to the selector document and the result is inserted in the collection.

关于mongodb - golang mongodb migrate database 库 mongo 到 mgo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55072565/

相关文章:

mongodb - $lookup 当 foreignField 在嵌套数组中时

javascript - Node.js 和 MongoDB 代码澄清

json - 我在哪里可以获得要在 MongoDB 中使用的示例 JSON 数据

mongodb - 使用 mgo 在 MongoDB 中插入数据

node.js - 查询数组中的匹配日期

go - 如何在 Gorm 中正确执行部分更新?

amazon-web-services - 使用CodeDeploy的golang应用程序的EC2部署

go mod 找不到依赖项的版本 v0.0.0-00010101000000-000000000000

mongodb - 如何在 Go 中使用 mgo 对文档进行部分和全部更新

mongodb - 为什么 mgo 不能正确解码我的结构?