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

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

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

</ code> </ pre>

我当前的代码:</ p>

 集合:= s.totals()
err:= collection.Update(
bson.M {“ contract_id” :contractID,“ date”:日期},
bson.M {“ $ inc”:bson.M {“ value”:value}},
//options.Update().SetUpsert(true),

</ code> </ pre>

我如何转换此 options.Update()。SetUpsert(true)</ code>以便在新库中使用?</ p>

</ div>

展开原文

原文

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 ?

dousha7645
dousha7645 官方的MongoDBGo驱动程序仍处于预发布状态,尽管已经接近稳定的1.0。
一年多之前 回复
doushan5245
doushan5245 我会仔细考虑使用叉子,叉子,未维护项目的叉子。
一年多之前 回复
donglie1898
donglie1898 Mgo已弃用。由于该项目被放弃,因此创建了MongoDB“官方”Go驱动程序。
一年多之前 回复

1个回答



只需使用 Collection.Upsert()</ code> 方法代替 Collection.Update()</ code> :</ p>

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

</ code> < / pre>

Collection.Upsert()</ code>的文档中引用:</ p>


Upsert找到一个匹配的文档 提供的选择器文档,并根据更新文档对其进行修改。 如果找不到与选择器匹配的文档,则将更新文档应用于选择器文档,并将结果插入到集合中。</ strong> </ p>
</ blockquote>
</ div>

展开原文

原文

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.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问