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