MongoDB: используйте save (), чтобы обновить существующий документ в коллекции

всех. Я люблю мангу. И теперь учусь любить и монго: -)

Есть объяснение , как использовать save () для обновления существующего документа в коллекции в MongoDB PHP ? но я не мог применить его к «реальности» PHP: -)

> var mongo = db.things.findOne({name:"mongo"});
> print(tojson(mongo));
{"_id" : "497dab624ee47b3a675d2d9c" , "name" : "mongo"}
> mongo.type = "database";
database
> db.things.save(mongo);
> db.things.findOne({name:"mongo"});
{"_id" : "497dab624ee47b3a675d2d9c" , "name" : "mongo" , "type" : "database"}

Вот мой тестовый код:

'test_a','field1'=>'anything');
$b=array('_id'=>'test_a','field2'=>'anything else');

$m=new Mongo();
$c=$m->db->test;
$c->save($a);
$c->save($b);//overwrites the previous record

/*
//With update() it works fine
$filter=array('_id'=>'test_a');
$update=array('$set'=>array('field2'=>'anything else'));
$c->update($filter,$update);
//$c->save($filter,$update);//Also tried...
*/

$f=$c->find();
echo $f->count()." found \n";
$i=iterator_to_array($f);//mongo cursos iterator
$m->close();//disconnect mongo

print_r($i);
?>

Дело в том, что в примере PHP save () перезаписывает объект, а в примере JS обновляет его. Я хотел бы воспроизвести в PHP то же самое, что и в JS.

Заранее спасибо.

8
задан Michael Shimmins 19 January 2011 в 00:55
поделиться