Я не могу написать запрос, который обновил бы значение массива, который находится внутри объекта:
Допустим, у меня есть коллекция, в которой есть записи документа со структурой, как показано ниже (Есть 2 записей в примере, но на самом деле есть несколько тысяч, которые мне нужно обновить в моей БД)
/* 1 */
{
"name" : "Bob",
"info" : {
"species" : "human",
"addresses" : [
"one",
"two"
]
}
},
/* 2 */
{
"name" : "John",
"info" : {
"species" : "human",
"addresses" : [
"two",
"three"
]
},
}
Как мне обновить все документы в этой коллекции, чтобы все адреса в массиве info.addresses
имели значение * Значение 1007 * будет изменено на значение four
?
Примеры в документации go дБ разрешают такие случаи, когда массивы не находятся внутри объектов, но я не могу заставить их работать с массивами внутри объектов
Пример - этот запрос должен обновить все массивы info.addresses для всех документов и изменить значения записей с one
на four
db.getCollection('test').update({"info.addresses": "one"},{ $set: { "info.addresses.$" : "four" } })