MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Einfügen eines PHP-Objekts in eine MONGO-DB

Der einfachste Weg ist wahrscheinlich, Ihr Objekt in ein Array "castbar" zu machen.

Wenn die Eigenschaften, die Sie speichern möchten, public sind , können Sie einfach Folgendes tun:

$array = (array)$foo;

Andernfalls ein toArray -Methode verwenden oder einen Iterator implementieren lassen Schnittstelle funktioniert:

class Foo implements IteratorAggregate {

   protected $bar = 'hello';

   protected $baz = 'world';

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

}

Natürlich können Sie auch get_object_vars verwenden , Reflection und dergleichen, anstatt die Eigenschaftsliste im getIterator fest zu codieren Methode.

Dann einfach:

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

Abhängig davon, wie Sie Ihre Objekte speichern möchten, möchten Sie möglicherweise DBRefs verwenden, anstatt verschachtelte Objekte auf einmal zu speichern, damit Sie sie leicht find können sie danach getrennt. Wenn nicht, machen Sie einfach Ihr toArray Methode rekursiv.