Если у меня есть документ с двумя значениями:
{
"name" : "Bob",
"location" "France"
}
И затем передайте массив в документ, который содержит "имя", "страна". Как обеспечить, чтобы весь документ обновлялся, удалив "местоположение"?
Я не буду знать различий между этими двумя документами, поэтому я не смогу отключить определенное поле. Я ищу способ просто заменить данные документа с предоставленным массивом.
Если вы предоставили update
новый документ, содержащий нужные записи, вы замените документ.
Например:
db.so.insert({"name":"Bob", "location": "France"})
db.so.update({"name":"Bob", "location": "France"}, {"name":"Roberto", "country":"Italy"})
db.so.find()
{ "_id" : ObjectId(), "name" : "Roberto", "country" : "Italy" }
Конечно, если у вас был _id
документа, это был бы лучший способ указать обновление (а не передавать обратно документ, который вы только что вставили, как указано выше)
_id
существующего документа, который вы хотите обновить. Ознакомьтесь с документацией по обновлению в PHP, которая показывает разницу между обновлениями, которые заменяют, и обновлениями, которые просто изменяют часть документа.