Имейте достаточно глубоко вложенный документ, часть вложенности включает объект, который является хешем ObjectID и соответствующим объектом. Мне нужно обновить все документы в коллекции, обновив только одно значение во вложенном объекте. Поэтому я знаю, что если бы я имел структуру, как:Обновление документа MongoDB с помощью подстановочного знака в поле имени
{
"name" : "Bob",
"address" : {
"street" : "123 Baker St"
}
}
Я мог бы обновить все «уличные» значения с помощью следующей команды оболочки:
db.mycollection.update({}, {$set : {"address.street" : "124 Baker St"}}, {multi: true});
Но в моем случае, структура ISN» t так просто, у него есть эти UUID, и я хочу обновить все. Структура больше похожа на это:
{
"name": "Bob",
"addresses" : {
"0934029572035702834234092834" : {
"street" : "123 Baker St"
},
"0904958304959879873876862378" : {
"street" : "123 Baker St"
}
}
}
< OK не большой пример б/с в реальном мире вы не хотели бы, чтобы изменить эти адреса, чтобы быть таким же, но предположим на минуту, что я делаю. Как получить все документы, чтобы изменить все значения «улицы» во вложенном объекте «адреса» без необходимости делать это OID по OID?
Это действительно ваша структура документа? Я бы настоятельно предложил изменить его, когда это возможно. Я бы ожидать что-то вроде: { «Имя: "Боб", "адреса": [{ "типа": "ваши странные Guid как штуковина", "улица": "123 Baker St"}, { type: «your 2nd guid thingy» «street»: «123 Baker St»}]} Таким образом вы можете обновлять элементы массива. Структура currunt заставляет команду update, например, «addresses.yourguidthingy.street»: «new улица "вместо обновления элемента массива, такого как" addresses.street ":« новая улица ». Надеюсь, это немного ясно ... – HoefMeistert
Как я уже сказал, это немного надуманный пример (на самом деле я не занимаюсь адресами) , но да, вложенный документ использует ключ GUID и значение объекта для каждого элемента родительского вложенного документа. Возможно, лучшим примером является то, что они представляют , но я столкнулся с ситуацией, когда в истории моментальных снимков должно быть свойство, обновленное во всех моментальных снимках. – Paul