У меня есть следующий документ:Монго DB, PHP добавить или обновить поле в документе
{
"_id": ObjectId("5241f1d79b7e7aed05000000"),
"description": {
"nl": "Hallo",
"en": "Hello"
},
"name": "Marc"
}
Теперь мне нужно обновить, чтобы обновить одну существующее поле или добавить новое поле в описании. В PHP я использую функцию обновления для Монго и следующий код:
$new_data = array(
'$set' => array(
"description" => array(
"de" => "hallo"
)
)
);
Что она делает это снимает все другие поля и просто вставить в поле «де». Я попытался заменить $ set на $ push (который, как я думал, был сделан для этого), но никакого результата также не будет. $ SetOnInsert ничего не делает.
Как решить эту проблему, чтобы я мог либо добавить новое поле (если оно не существует), либо обновить, если оно существует.
Благодаря
перед обновлением добавить предыдущий рекорд в $ new_data в описании, потому что думать логически вы обновляете filed –
Это имеет смысл, но это означает, что в некоторых случаях мне нужно отправить, например, 23 дополнительных поля в сообщении, которые не обновляются. Другого пути нет? –
вы можете добавить больше полей, но в вашем случае описание - это массив, и вы заменяете другим значением –