sql >> Database >  >> NoSQL >> MongoDB

Een PHP-object invoegen in een MONGO DB

De gemakkelijkste manier is waarschijnlijk om uw object "castable" te maken naar een array.

Als de eigenschappen die u wilt opslaan public zijn , je kunt gewoon doen:

$array = (array)$foo;

Anders een toArray methode, of het implementeren van een Iterator interface werkt:

class Foo implements IteratorAggregate {

   protected $bar = 'hello';

   protected $baz = 'world';

   public function getIterator() {
       return new ArrayIterator(array(
           'bar' => $this->bar,
           'baz' => $this->baz,
       ));
   }

}

Uiteraard kunt u ook get_object_vars . gebruiken , Reflection en dergelijke in plaats van hardcoderen van de eigenschappenlijst in de getIterator methode.

Dan, gewoon:

$foo = new Foo;
$array = iterator_to_array($foo);
$mongodb->selectCollection('Foo')->insert($array);

Afhankelijk van hoe u uw objecten wilt opslaan, wilt u misschien DBref's gebruiken in plaats van geneste objecten in één keer op te slaan, zodat u gemakkelijk kunt find ze daarna apart. Zo niet, maak dan gewoon uw toArray methode recursief.



  1. mongodb - batchquery uitvoeren

  2. Limieten instellen voor mongo db-verzameling

  3. Mongo werkt alle records bij met een veld dat nul is

  4. mongodb tel tellen zonder te herhalen vinden