Intereting Posts

Mongo DB, PHP добавить или обновить поле в документе

У меня есть следующий документ:

{ "_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" ) );