모두. 나는 만화를 좋아한다. 그리고 지금 나는 몽고를 너무 좋아한다는 것을 배우고 있습니다 :-)MongoDB : save()를 사용하여 컬렉션의 기존 문서를 업데이트하십시오.
how to use save() to update an existing document in a collection in MongoDB PHP에 대한 설명이 있습니까?
<?php
$a=array('_id'=>'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의 예에서 (저장한다는 것입니다) 객체 동안 덮어 :하지만 난 여기에 내 테스트 코드의
> 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"}
:-)는 PHP의 "현실"에 적용 할 수 없습니다 JS 예제에서이를 업데이트합니다. 나는 JS에서와 같은 PHP에서 재현 할 수 있으면 좋겠다.
미리 감사드립니다. JS의 예에서
http://www.mongodb.org/display/DOCS/Updating#Updating-ModifierOperations에서 x가 _id 필드 (x는 JSON 스타일 객체이고 upsert는 업데이트를 의미 함)가 있으면 upsert가 수행된다고합니다. 누락 된 경우 삽입하십시오). " – Roger
문제가 무엇인지 모르겠다. JS와 PHP 예제가 똑같은 일을하지 않는다? 기대하는 바가 무엇인지 말해주십시오. 우리가 환경을 설정하고 출력물을보기 위해 코드를 실행하기를 기대하지 마십시오. – Theo
답장을 보내 주셔서 감사합니다. php 예제를 실행하면 JS 예제에서 객체를 업데이트하는 동안 save()가 객체를 덮어 씁니다. 나는 JS에서와 같은 PHP에서 재현 할 수 있으면 좋겠다. – Roger