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

对于插入:

$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

如果要添加另一个条目,请添加如下条目:

$this->collection->insert($array_of_data, array('safe' => true));
于 2012-08-05T16:00:01.543 回答
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 回答