как обновить объект значения в массив в MongoDB Golang - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь обновить свои адреса в своих личных данных

    if _, ok := update["addressName"]; ok {
        request = bson.M{"addresses": bson.M{"addressName": update["addressName"]}}
    } else {
        request = update
    }
    _, err = people.UpdateOne(context.TODO(), filter, bson.M{"$set": request})

это не создает объект в массиве

Я хочу получить такой результат

{
 "updateAt": TIME_NOW
 "addresses": [
          {"addressName": "ONLY", default: true},
          {"addressName": "ONLY", default: true}
  ]
}

как правильно запросить объект в массиве с помощью драйвера MongoDB

1 Ответ

2 голосов
/ 18 июня 2020

Вы $set привязываете addresses к массиву, содержащему единственный элемент. Либо вам нужно установить addresses в массив, содержащий все необходимые элементы, либо вы должны добавить к этому массиву, используя $push:

_, err = people.UpdateOne(context.TODO(), filter, bson.M{"$push":bson.M{"addresses":bson.M{ address info }})
...