如何使用Go官方驱动执行addToSet?

我需要addToSet使用官方 Go MongoDB 驱动程序进行操作。


在 MongoDB 中我们有一些文档:


{ _id: 2, item: "cable", tags: [ "electronics", "supplies" ] }

然后执行addToSet:


db.inventory.update(

   { _id: 2 },

   { $addToSet: { tags: { $each: [ "camera", "electronics", "accessories" ] } } }

)

结果:


{

  _id: 2,

  item: "cable",

  tags: [ "electronics", "supplies", "camera", "accessories" ]

}


收到一只叮咚
浏览 97回答 1
1回答

翻阅古今

$addToSet是一个更新操作,如果你想更新单个文档,可以使用该Collection.UpdateOne()方法。使用bson.M和/或bson.D类型来描述您的过滤器和更新文档。例如:update := bson.M{    "$addToSet": bson.M{        "tags": bson.M{"$each": []string{"camera", "electronics", "accessories"}},    },}res, err := c.UpdateOne(ctx, bson.M{"_id": 2}, update)这是一个完整的、可运行的应用程序,它连接到 MongoDB 服务器并执行上述更新操作:ctx := context.Background()client, err := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost"))if err != nil {    panic(err)}defer client.Disconnect(ctx)c := client.Database("dbname").Collection("inventory")update := bson.M{    "$addToSet": bson.M{        "tags": bson.M{"$each": []string{"camera", "electronics", "accessories"}},    },}res, err := c.UpdateOne(ctx, bson.M{"_id": 2}, update)if err != nil {    panic(err)}fmt.Printf("%+v", res)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go