1
PHP経由でMongoDB文書を更新しようとしています。 私の問題は、私が更新するとドキュメントデータが削除されるため、更新するもの以外のデータがなくなってしまったということです。MongoDBの更新が文書の代わりに
は、私が更新する前に、文書は次のようになります。
{
"_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);
が重複する可能性を[mongodbでネストされたドキュメントを更新する](http://stackoverflow.com/questions/1145956/updating-nested-documents-in-mongodb) –
更新した後の文書の外観はどうですか? – Theo
あなたのプロパティの先頭に '$'をつけるべきではありません。http://www.mongodb.org/display/DOCS/Legal+Key+Names – Theo