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.