douxu2467 2019-03-08 23:51
浏览 188
已采纳

golang mongodb将数据库库mongo迁移到mgo

I want to change library for database from github.com/mongodb/mongo-go-driver/mongo to github.com/globalsign/mgo, my problem is I dont know how convert this code for new library :

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),
    )

My current code :

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

How i can convert this options.Update().SetUpsert(true) for use in new library ?

  • 写回答

1条回答 默认 最新

  • douhuan1908 2019-03-09 00:23
    关注

    Simply use the Collection.Upsert() method instead of Collection.Update():

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

    Quoting from the doc of 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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 大华dss监控平台网络关闭登不进去
  • ¥15 有关AT89C51单片机问题
  • ¥15 请使用蚁群算法解决下列问题,并给出我完整的代码
  • ¥20 关于php录入完成后,批量更新数据库
  • ¥15 请教往复密封润滑问题
  • ¥15 cocos creator发布ios包
  • ¥15 comsol压电材料数据
  • ¥35 用python实现除法算法中goldschmidt算法
  • ¥15 汇编代码转换成C代码
  • ¥15 除法算法中的归一化具体是怎么变的?