1

私は次の文書を持っています:

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

ここで、1 つの既存のフィールドを更新するか、説明に新しいフィールドを追加するために更新する必要があります。PHP では、Mongo の update 関数と次のコードを使用します。

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

他のすべてのフィールドを削除し、「de」フィールドを挿入するだけです。$set を $push に置き換えてみましたが (これはこのために作成されたと思います)、結果も $setOnInsert も何もしません。

新しいフィールド (存在しない場合) を追加するか、存在する場合は更新できるように、この問題を解決するにはどうすればよいですか。

ありがとう

4

1 に答える 1

1

更新を次のようにするだけです

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

あなたのコードでは次のようになると思います:

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