0

我有一个包含一组客户端的 mongo 文档。我希望能够通过用户 ID 更新客户名称。到目前为止,我有下面的代码。当我运行它时,它会出现多个写入错误。我的数据库中只有一个具有该 _id 的文档。如何修复我的代码?

{

    "_id" : "999999999_9_clients",

    "clients" : [

        {

            "name" : "Joe",
            "age" : 7,
            "time" : "1563249601.932",
            "userid" : "6b528591-ad78-4b8b-9484-350853edcd44"

        },{

            "name" : "Mark",
            "age" : 17,
            "time" : "1563249601.932",
            "userid" : "7b528591-ad78-4b8b-9484-350853edcd44"
        }

    ],

}

代码:

key :="999999999_9_clients"

 

                filter := bson.M{"_id": key, "clients.userid": "6b528591-ad78-4b8b-9484-350853edcd44"}

                update := bson.M{

                                "$set": bson.M{

                                                "clients.name": "Sam",
                                 },

                }

                _, err := collection.UpdateOne(ctx, filter, update)

               

                if err != nil {

                             return err
                  }

 
4

1 回答 1

1

你不见了positional operaror

update := bson.M{
      "$set": bson.M{
             "clients.$.name": "Sam",
       },
}

请注意更新中的美元符号。

在所有语言中都是相同的。

您忽略changeInfo了,但您可以在 Go 中更新后使用它。

于 2021-01-19T04:36:54.923 回答