sql >> Databáze >  >> NoSQL >> MongoDB

Vložení objektu PHP do databáze MONGO

Nejjednodušší způsob je pravděpodobně učinit váš objekt „přenositelným“ do pole.

Pokud jsou vlastnosti, které chcete uložit, public , můžete udělat:

$array = (array)$foo;

Jinak toArray nebo přimět ji k implementaci Iterator rozhraní bude fungovat:

class Foo implements IteratorAggregate {

   protected $bar = 'hello';

   protected $baz = 'world';

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

}

Samozřejmě můžete také použít get_object_vars , Reflection a podobně místo pevného kódování seznamu vlastností v getIterator metoda.

Pak jen:

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

V závislosti na tom, jak chcete ukládat své objekty, možná budete chtít použít DBRefs namísto ukládání vnořených objektů najednou, takže můžete snadno find je pak samostatně. Pokud ne, jednoduše vytvořte toArray rekurzivní metoda.



  1. Dotazování na rozsah v Redis - Spring Data Redis

  2. Duplicitní dokumenty na _id (v mongo)

  3. Získání výjimky při provádění block() na objektu Mono Dostal jsem se zpět z objektu ReactiveMongoRepository

  4. Dotazujte se a shrňte vše pomocí mangusty