Я попытался обновить документ в gridfs Mongodb с идентификатором документа. Первоначально мой документ был:Не удалось обновить gridfs Mongodb с помощью php
{
[_id] => MongoId Object (
[$id] => 5218a723db8af6920a3c6624
)
[Username] => 'Old Name'
[Phone] => 'xxxxxxxxxx'
[Address] => 'User address'
[Email] => 'User email'
[DecMak] => 'Some text'
[Descr] => 'my description'
[ImgName] => 'Image Name'
[Str] => 6
[Date] => '25-08-2013'
[filename] => 'MyJpg.JPG'
[uploadDate] => MongoDate Object (
[sec] => 1377305640
[usec] => 262000
)
[length] => 1099792
[chunkSize] => 262144
[md5] => 2e3bc10f7deeb0334ea0af4bd0fe9bdf
}
И я хотел обновить значение только поля «Username». Я использовал следующий код, чтобы обновить его:
$m = new MongoClient();
$db = $m->mydb;
$gridfs = $db->getGridFS();
$collection = $db->fs->files;
$cursor = $collection->find(array('_id'=>new MongoID($_POST['_id'])));
foreach ($cursor as $obj)
{
$db->fs->files->update(array('_id'=>new MongoID($_POST['_id'])),
//identified the document with the ID.
array('Username' => $_POST['name']));
//Original name be changed to what filled in the webform.
}
Но после обновления Что он сделал для моего документа заключается в следующем:
{
[_id] => MongoId Object (
[$id] => 5218a723db8af6920a3c6624
),
[Username] => 'New Name',
}
Таким образом, все остальные ключи и их значения исчезли - Что пошло не так в моем коде ? Нужно ли указывать все пары ключей и значений при обновлении документа? Я надеюсь, что это не должно быть ..
Кроме того, что может быть код для обновления двоичного файла, как изображение/mp3 и т.д.
Заранее спасибо за вашу поддержку!
Vasudev