Cara termudah mungkin adalah dengan membuat objek Anda "castable" ke array.
Jika properti yang ingin Anda simpan adalah public , Anda cukup melakukan:
$array = (array)$foo;
Jika tidak, toArray metode, atau membuatnya mengimplementasikan Iterator antarmuka akan berfungsi:
class Foo implements IteratorAggregate {
protected $bar = 'hello';
protected $baz = 'world';
public function getIterator() {
return new ArrayIterator(array(
'bar' => $this->bar,
'baz' => $this->baz,
));
}
}
Jelas, Anda juga dapat menggunakan get_object_vars , Refleksi dan semacamnya alih-alih mengkodekan daftar properti di getIterator metode.
Kemudian, cukup:
$foo = new Foo;
$array = iterator_to_array($foo);
$mongodb->selectCollection('Foo')->insert($array);
Tergantung pada bagaimana Anda ingin menyimpan objek Anda, Anda mungkin ingin menggunakan DBRefs daripada menyimpan objek bersarang sekaligus, sehingga Anda dapat dengan mudah find mereka secara terpisah setelahnya. Jika tidak, buat saja toArray your metode rekursif.