sql >> Database teknologi >  >> NoSQL >> MongoDB

Indsættelse af et PHP-objekt i en MONGO DB

Den nemmeste måde er nok at gøre dit objekt "castable" til et array.

Hvis de egenskaber, du vil gemme, er public , du kan bare gøre:

$array = (array)$foo;

Ellers en toArray metode, eller få den til at implementere en Iterator grænsefladen fungerer:

class Foo implements IteratorAggregate {

   protected $bar = 'hello';

   protected $baz = 'world';

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

}

Du kan selvfølgelig også bruge get_object_vars , Reflektion og sådan i stedet for at hardkode egenskabslisten i getIterator metode.

Så bare:

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

Afhængigt af hvordan du vil gemme dine objekter, vil du måske bruge DBRefs i stedet for at gemme indlejrede objekter på én gang, så du nemt kan find dem hver for sig bagefter. Hvis ikke, skal du bare lave din toArray metode rekursiv.



  1. MongoDB kontroller, om id er en gyldig BSON PHP

  2. Kan ikke få mongoose-unique-validator til at virke

  3. Redis butiksnøgle uden en værdi

  4. gem adgangskode som saltet hash i mongodb i brugersamling ved hjælp af python/bcrypt