Php MongoDB更新替换文档
我正在尝试通过PHP更新MongoDB文档。 我的问题是,当我更新时,文档数据会被删除,因此除了我更新的数据之外,其他数据也会消失 更新之前,文档如下所示:Php MongoDB更新替换文档,php,cakephp,mongodb,Php,Cakephp,Mongodb,我正在尝试通过PHP更新MongoDB文档。 我的问题是,当我更新时,文档数据会被删除,因此除了我更新的数据之外,其他数据也会消失 更新之前,文档如下所示: { "_id": { "$oid": "4e178b45419866350f000001" }, "Twitter": { "_id": { "$oid": "4e178b45419866350f000000" }, "creat
{
"_id": {
"$oid": "4e178b45419866350f000001"
},
"Twitter": {
"_id": {
"$oid": "4e178b45419866350f000000"
},
"created": {
"$date": "2011-07-08T22:57:09Z"
},
"userid": "5552362"
},
"created": {
"$date": "2011-07-08T22:57:09Z"
}
}
以下是我的更新方式:
$r = $Profile->update(
array('Twitter._id' => new MongoId($profile['_id'])),
array(
'$set' => array(
'Twitter' => array(
'name' => $user['name'],
'username' => $user['screen_name'],
'url' => $user['url'],
'modified' => new MongoDate()
)
)
),
array('safe' => true)
);
debug($r);
我认为您需要这种更新:
$Profile->update(
array('Twitter.userid' => $user['id']),
array(
'$set' => array(
'Twitter.name' => $user['name'],
'Twitter.username' => $user['screen_name'],
'Twitter.url' => $user['url'],
'Twitter.modified' => new MongoDate()
)
),
array('multiple' => true)
);
我认为您需要这种更新:
$Profile->update(
array('Twitter.userid' => $user['id']),
array(
'$set' => array(
'Twitter.name' => $user['name'],
'Twitter.username' => $user['screen_name'],
'Twitter.url' => $user['url'],
'Twitter.modified' => new MongoDate()
)
),
array('multiple' => true)
);
更新后文档可能重复,以及文档的外观如何?不应在属性前面加$,请参阅$set不是键,而是一个。更新后文档可能重复,以及文档的外观如何?不应在属性前面加$,请参阅$set不是键,而是一个。