添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
儒雅的小刀  ·  asp.net ...·  6 月前    · 
年轻有为的毛衣  ·  Disassemble a FLIR ...·  10 月前    · 
我想更新数据库中的一些字段,并希望它返回一些字段,你能建议如何检索返回字段吗?所以我在这里使用,returnFields := map[string]interface{}{"order_id":1} data := FindAndUpdateVerticalsOffers(updateQuery, updateFields, returnFields)如何从“data”获取order_id:func FindAndUpdateVerticalsOffers(updateQuery map[string]interface{}, updateFields interface{}, returnFields map[string]interface{}) map[string]interface{} {    session := db.GetSession()    defer session.Close()    collection := session.DB("").C(VerticalsOffersName)    updateSet := bson.M{"$set": updateFields}    return collection.FindOneAndUpdate(updateQuery, updateSet, returnFields)}
查看完整描述

TA贡献1725条经验 获得超7个赞

我想更新数据库中的一些字段并希望它返回一些字段,

如果您使用mongo-go-driver(当前为 v1.1),您可以使用FindOneAndUpdate()来查找单个文档并更新它,返回原始文档或更新后的文档。

该方法接受FindOneAndUpdateOptions的参数,它支持投影。例如:

collection := client.Database("dbName").Collection("collName")


// Sets projection (or return fields)

findUpdateOptions := options.FindOneAndUpdateOptions{}

findUpdateOptions.SetProjection(bson.M{"order_id": 1})


result := collection.FindOneAndUpdate(context.TODO(),

bson.M{"foo":1},

bson.M{"$set": bson.M{"bar":1}},

&findUpdateOptions)


doc := bson.M{}

err = result.Decode(&doc)

上面的查询将匹配字段 foo 为 1 的文档,将字段更新为 1,并仅作为结果 bar 返回。 order_id 请注意,默认情况下 _id 也会返回该字段。您可以通过将_id 字段设置为 0 来禁止投影。

请注意,返回类型 FindOneAndUpdate 是SingleResult对象,它表示从操作返回的单个文档。如果操作返回错误,则 Err SingleResult 的方法将返回该错误。


查看完整回答