Panada Framework 1.0.0 Documentation

MongoDB

MongoDB adalah scalable, high-performance, open source database NoSQL yang berorientasikan dokumen. Dengan MongoDB memungkinkan penyimpanan data dilakukan tanpa perlu diawali dengan pembuatan skema database. Setiap data disimpan berformat herarki, di mana setiap record bisa memiliki herarki yang berbeda dengan record lainnya dalam satu collection/tabel yang sama.

Lebih lanjut mengenai MongoDB bisa dilihat di http://www.mongodb.org.

Untuk menggunakan Driver ini, pastikan PHP Anda telah terinstall ekstensi Mongo.

Driver MongoDB Panada merupakan inheritance dari class Mongo yang telah tersedia secara natif oleh ekstensi Mongo. Hal ini berarti, semua resources yang ada pada class Mongo, bisa juga langsung digunakan pada Driver MongoDB.

Di bawah adalah beberapa contoh dari method-method yang paling sering digunakan.

Informasi lebih lanjut mengenai MongoDB API's silahkan lihat http://www.mongodb.org/display/DOCS/Tutorial

Konfigurasi

Konfigurasi dilakukan di file app/config/database.php

Berikut adalah contohnya:

Jika ingin menambahkan opsi tambahan pada connection option, bisa dilakukan pada bagian options

Lebih lanjut mengenai connection option, silahkan lihat di http://www.php.net/manual/en/mongo.construct.php

Berikut adalah contoh connection option replica set dengan setting auto-connect false:

'options' => array('replicaSet' => true, 'connect' => false),

Jika koneksi ke server MongoDB lebih dari satu (misalnya pada penggunaan Replica Set), berikut adalah contohnya:

'host' => 'localhost, 192.168.10.20, 192.168.10.21',

Inisialisasi

Jika MongoDB digunakan sebagai database default, inisialisasinya sama seperti database yang lainnya.

$this->db = new Resources\Database;

Atau jika MongoDB terletak pada setting koneksi dengan nama koneksi mongodb, maka contoh inisalisasinya:

$this->mongodb = new Resources\Database('mongodb');

Connect

Secara default, ketika Library MongoDB maka koneksi ke Mongo server akan dibuat. Namun feature ini bisa dinonaktifkan dengan menambahkan parameter array('connect' => false); seperti contoh di atas.

Jika setting ini dilakukan, maka setiap akan melakukan request data perlu diinisialisasi konkeksi baru, dengan method:

$this->mongodb->connect();

Collection

Untuk menentukan collection yang akan dipilih, gunakan method:

$this->mongodb->collection(string $collection);

Sebagai contoh, untuk mendapatkan collection users, penggunaannya:

$this->mongodb->collection('users');

Insert

Untuk menambahkan data baru, gunakan method:

$this->mongodb->collection('collection_name')->insert( array | object $data );

$data bisa berupa array atau object.

Lebih lanjut mengenai insert di MongoDB, lihat di http://www.php.net/manual/en/mongo.writes.php dan http://www.mongodb.org/display/DOCS/Inserting

Find

Untuk mendapatkan data dengan jumlah lebih dari satu, gunakan method:

$this->mongodb->collection('collection_name')->find( array $criteria = array() );

$criteria adalah item array untuk melakukan filter terhadap data yang ingin didapatkan.

Contoh penggunaan untuk "dapatkan user dengan id kurang dari atau sama dengan 20 dari collection/tabel users":

$criteria = array('id' => array('$lte' => 20) );
$cursor = $this->mongodb->collection('users')->find($criteria);

Lebih lanjut mengenai query dan kriteria di MongoDB, lihat di http://www.mongodb.org/display/DOCS/Querying

CursorResults

Secara default, output data yang diberikan oleh Mongo berformat array. Untuk menampilkan data yang diambil dari method find dengan format object, Panada menyediakan method cursorResults:

$cursor = $this->mongodb->collection('users')->find()->limit(3);
$data = $this->mongodb->cursorResults($cursor);

FindOne

Sedangkan untuk mendapatkan data dengan jumlah satu, gunakan method:

$this->mongodb->collection('collection_name')->findOne( array $criteria = array() );

Contoh penggunaan untuk "dapatkan user dengan id 20 dari collection/tabel users":

$criteria = array('id' => (int) 20 );
$value = $this->mongodb->collection('users')->findOne($criteria);

Update

Untuk memperbaharui data gunakan method:

$this->mongodb->collection('collection_name')->update( array $criteria = array(), array('$set' => $data) );

Informasi mengenai API update, silahkan lihat http://www.mongodb.org/display/DOCS/Updating

Remove

Untuk penghapusan data, gunakan method:

$this->mongodb->collection('collection_name')->remove( array $criteria = array() );

Informasi mengenai API remove, silahkan lihat http://www.mongodb.org/display/DOCS/Removing

Contoh

Diskusi