Py学习  »  MongoDB

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

kodiu • 5 年前 • 563 次点击  

我想更改数据库的库 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) 用于新库?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30798
 
563 次点击  
文章 [ 1 ]  |  最新文章 5 年前
icza
Reply   •   1 楼
icza    5 年前

简单地使用 Collection.Upsert() 方法而不是 Collection.Update() :

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

引用的文档 集合.upsert()) :

upsert查找与所提供的选择器文档匹配的单个文档,并根据更新文档对其进行修改。 如果找不到与选择器匹配的文档,则更新文档将应用于选择器文档,结果将插入到集合中。