我的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中插入这些?
答案 0 :(得分:0)
$array = $this->collection->findOne(array('_id' => MONGO_ID));
//Update things
$this->collection->update(array('_id' => $array['_id']), $array);
我的示例中的MONGO_ID应代表MongoDB自动分配的'_id'。确保它作为Object发送,而不是作为字符串发送。
答案 1 :(得分:0)
如果要添加其他条目,请添加如下条目:
$this->collection->insert($array_of_data, array('safe' => true));
答案 2 :(得分: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" } }
有效:)