Obsługa MongoDB w PHP

MongoDB to nierelacyjna baza danych "dokumentów". Jest wysoce wydajna, napisana w C++ i wydawana na otwartej licencji. Celem MongoDB jest zapełnienie przestrzeni pomiędzy "magazynami" klucz-wartość (o wysokiej skalowalności), a tradycyjnymi bazami relacyjnymi (które posiadają bardzo rozbudowaną funkcjonalność). Dokładny opis samej bazy znajduje się w Bibliotece Pythona. Użytkownicy Zend Framework mogą także zainteresować się Logging to MongoDb and accessing log collections with Zend_Tool

.

MongoDB i PHP

Dla PHP dostępny jest binarny moduł udostępniający pełne API dla MongoDB. Wszystko, wraz z instalacja i użyciem opisane jest na wiki Mongo.

  • Pobieramy kod z repozytorium GIT:
    git clone git://github.com/mongodb/mongo-php-driver.git
  • Wchodzimy do katalogu i kompilujemy moduł:
    phpize
    ./configure
    #aclocal
    #autoconf
    make
    make install
    Jeżeli "./configure" lub "make" wysypie się z komunikatem o zbyt starych plikach aclocal to należy wykonać polecenia aclocal i autoconf i następnie "make" i "make install" (instalacja wymaga uprawnień roota lub sudo).
  • Do php.ini (/etc/php*/.../php.ini zazwyczaj) dodaj:
    extension=mongo.so;
    Po restarcie serwera apache "mongo" powinno być widoczne w phpinfo.
Rozszerzenie MongoDB dla PHP oferuje obiektowy interfejs operowania na bazie danych. Zakładając że baza działa lokalnie, można wypróbować poniższy prosty skrypt wykorzystujący ten interfejs:
<pre><?php
$connection = new Mongo();
$db = $connection->selectDB( "testowa" );
$collection = $db->selectCollection( "test" );

$doc = array( "name" => "MongoDB",
   "type" => "database",
   "count" => 1,
   "info" => (object)array( "x" => 203,
       "y" => 102),
   "versions" => array("0.9.7", "0.9.8", "0.9.9")
);

$collection->insert($doc);

print_r($collection->findOne());
Co powinno zapisać jedną encję do bazy, a następnie pobrać i wyświetlić ją.
RkBlog

PHP w Akcji, 17 September 2009

Comment article
Comment article RkBlog main page Search RSS Contact