MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Вмъкване на PHP обект в MONGO DB

Вероятно най-лесният начин е да направите обекта си "преливащ" към масив.

Ако свойствата, които искате да съхраните, са public , можете просто да направите:

$array = (array)$foo;

В противен случай, toArray или да го накарате да реализира Iterator интерфейсът ще работи:

class Foo implements IteratorAggregate {

   protected $bar = 'hello';

   protected $baz = 'world';

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

}

Очевидно можете също да използвате get_object_vars , Reflection и подобни вместо твърдо кодиране на списъка със свойства в getIterator метод.

След това просто:

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

В зависимост от това как искате да съхранявате вашите обекти, може да искате да използвате DBRefs вместо да съхранявате всички вложени обекти наведнъж, така че можете лесно да find след това ги отделно. Ако не, просто направете своя toArray рекурсивен метод.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB към DynamoDB

  2. Основен уеб API на Asp.net с грешка mongodb 500

  3. Как да влезете в производството с MongoDB - Топ десет съвета

  4. Mongodb:Вземете документи, сортирани по динамично класиране

  5. Mongodb - трябва _id да бъде глобално уникален при шардинг