1

我有以下文件:

{
   "_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 也没有做任何事情。

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

谢谢

4

1 回答 1

1

只要让你的更新像

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

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

$new_data = array(
  '$set' => array(
    "description.de" => "hallo"
  )
);
于 2013-09-24T21:25:20.863 回答