0

MongoDB の内容 (find() を使用した場合) は次のようになります。

{
  "_id": ObjectId("50072b17b4a6de3b11000001"),
  "addresses": [
    {
      "_id": ObjectId("50072b17b4a6de3b11000004"),
      "address1": "770 27th Ave",
      "address2": null,
      "city": "San Mateo",
      "country": "United States",
      "country_code": "US",
      "name": "home",
      "primary": true,
      "state": "California",
      "zip": "94403"
    }
  ],
  "biography": null,
  "category_ids": [],
  "department": null,
  "emails": [
    {
      "_id": ObjectId("50072b17b4a6de3b11000003"),
      "_type": "Email",
      "name": "work",
      "email": "alan@altimetergroup.com"
    }
  ]
}

私がしなければならないことは、この MongoDB を追加のデータで更新する必要があるということです。そのためには、php の値を配列として取得し、その配列をこのコレクションに挿入する必要があります。これらの指定されたフィールドの値をphpで配列として取得する方法と、それらをphpに挿入する方法??

4

3 に答える 3

0

別のエントリを追加する場合は、次のようなエントリを追加します。

$this->collection->insert($array_of_data, array('safe' => true));
于 2012-08-05T16:00:01.543 に答える
0

インサートの場合:

$id = new MongoId();
$test->insert(array('t' => 'test', 'email' => array('_id' => $id, 'email' => 'ccc@ccc.com')));

そして結果:

{ "_id" : ObjectId("5088cba86527044a31000001"), "t" : "test", "email" : { "_id" : ObjectId("5088cba86527044a31000000"), "email" : "ccc@ccc.com" } }

できます :)

于 2012-10-25T05:22:09.620 に答える
0
$array = $this->collection->findOne(array('_id' => MONGO_ID));
//Update things
$this->collection->update(array('_id' => $array['_id']), $array);

この例の MONGO_ID は、MongoDB が自動的に割り当てる「_id」を表す必要があります。文字列としてではなく、オブジェクトとして送信されていることを確認してください。

于 2012-08-01T17:01:15.110 に答える