Golang MongoDB迁移数据库库Mongo到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找到一个匹配提供的选择器文档的文档,并根据更新文档对其进行修改。如果找不到选择器的文档,则将更新文档应用于选择器文档,并将结果插入集合中。

最新更新