Mongo DB,PHP在文档中添加或更新字段


Mongo DB, PHP add or update a field in a document

我有以下文档:

{
   "_id": ObjectId("5241f1d79b7e7aed05000000"),
   "description": {
     "nl": "Hallo",
     "en": "Hello"
    },
  "name": "Marc"
}

现在我需要更新以更新一个现有字段或向描述添加新字段。在php中,我使用Mongo的更新函数和以下代码:

$new_data = array(
    '$set' => array(
    "description" => array(
         "de" => "hallo"
       )
    )
);

它的作用是删除所有其他字段,只需插入"de"字段。我尝试用 $push 替换$set(我认为这是为此而制作的),但没有结果$setOnInsert什么也没做。

我如何解决这个问题,以便我可以添加一个新字段(如果不存在)或更新(如果存在)。

谢谢

只需使您的更新像

{$set: {"description.de": "hello"}}

我想在你的代码中它会是:

$new_data = array(
  '$set' => array(
    "description.de" => "hallo"
  )
);