我想将数据库的库从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)
以便在新库中使用?
答案 0 :(得分:1)
只需使用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查找与提供的选择器文档匹配的单个文档,并根据更新文档对其进行修改。 如果找不到与选择器匹配的文档,则将更新文档应用于选择器文档,并将结果插入到集合中。