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