Sabtu, 03 Desember 2011

Basic Query PHP for MongoDB

wordpressapi.com
NoSQL singkatan dari Not Only SQL. Artinya sebuah sistem basis data yang tidak harus menggunakan perintah SQL untuk  manipulasi data.



NoSQL atau Database berorientasi dokumen adalah sebuah database yang dapat menjadi alternatif dalam menyimpan data, salah satu database jenis NoSQL yang dapat dipilih adalah mangoDB.

Cara instalasi mongoDB di operating system Ubuntu dapat dilihat di Klik dan cara instalasi PHP dapat dilihat di Klik

Agar PHP dapat mengakses database mongoDB maka pada PHP harus memiliki Driver Mongo. Driver adalah sebuah program khusus yang berisikan library agar PHP memiliki kemampuan yang lebih kaya. Anda dapat melihat cara instalasi Driver Mongo di Klik

Pada MongoDB tidak ada namanya table dan record seperti ada pada Database Relational (MySQL, Oracle, dsb), tetapi yang ada pada mongoDB terdapat terminologi sebagai berikut.
  • Collection dapat dianalogikan Table pada database relational (MySQL, Oracle, dsb)
  • Dokumen dapat dianalogikan Record pada database relational (MySQL, Oracle, dsb). Atribute Dokumen pada MongoDB bersifat fleksible jumlah nya, sebagai contoh sebuah dokumen dapat terdiri dari 3 atribute dan dokumen yang lainnya lebih dari 3 atribute dalam satu collection yang sama. Tidak seperti pada database relational yang jumlah atribute bersifat statis untuk semua record pada table yang sama.
MongoDB merupakan sistem database yang menggunakan konsep key-value artinya setiap dokumen/record pada mongoDB memiliki Key.

Pada posting ini akan menjelaskan menggunakan operasi dasar (Input, Update, Delete, View) data mongoDB dengan Server Side Scripting PHP. Operating System yang digunakan pada posting ini adalah Ubuntu versi 11.10 dengan mongoDB versi 2.0.1 dan PHP versi 5.x.x

1. MEMBUAT KONEKSI
$m = new Mongo();
2. MEMBUAT DATABASE DAN MEMILIH DATABASE
$m = new Mongo();
$db = $m->sisfoKampus;	
Pada contoh diatas memilih database bernama sisfoKampus apabila database bernama sisfoKampus belum ada maka secara otomatis akan dibuatkan oleh mongoDB.

3. MEMBUAT COLLECTION DAN MEMILIH COLLECTION
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu;	
Pada contoh diatas memilih collection/table bernama bukutamu apabila collection/table bernama bukutamu belum ada maka secara otomatis akan dibuatkan oleh mongoDB.

4. MENGHAPUS COLLECTION
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu;
$collection->remove();	
Pada contoh diatas menghapus collection bukutamu

5. MENAMBAH DATA
$m = new Mongo();
$db = $m->sisfoKampus; 
$collection = $db->bukutamu;
$obj1 = array('nama'=>'dendie', 'komentar'=>'komentar 1');
$obj2 = array('nama'=>'miftah', 'komentar'=>'komentar 2');
$obj3 = array('nama'=>'yudi', 'komentar'=>'komentar 3');

$collection->insert($obj1);
$collection->insert($obj2);
$collection->insert($obj3);	
Pada contoh diatas memasukan data sebanyaK tiga buah kedalam collection bernama bukutamu.

6. MENAMPILKAN SELURUH DATA
$m = new Mongo();
$db = $m->sisfoKampus; <
$collection = $db->bukutamu; 
$cursor = $collection->find();

foreach ($cursor as $val) {
  echo 'ID :'.$val["_id"];
  echo 'NAMA :'.$val["nama"];
  echo 'KOMENTAR :'.$val["komentar"];
}
Pada contoh diatas menampilan seluruh data pada collection bernama bukutamu

7. MENAMPILKAN DATA DENGAN LIMIT
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu;
$cursor = $collection->find()->limit(2);

foreach ($cursor as $val) {
  echo 'ID :'.$val["_id"];
  echo 'NAMA :'.$val["nama"];
  echo 'KOMENTAR :'.$val["komentar"];			
}	
Pada contoh diatas menampilan data sebanyak 2 buah dari collection bernama bukutamu.

8. MENAMPILKAN DATA DENGAN SORTING ASCENDING
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu;
$cursor = $collection->find()->sort(array('nama'=>true));

foreach ($cursor as $val) {
  echo 'ID :'.$val["_id"];
  echo 'NAMA :'.$val["nama"];
  echo 'KOMENTAR :'.$val["komentar"];			
}	
Pada contoh diatas melakukan pengurutan data pada field nama secara ascending pada collection bernama bukutamu.

9. MENAMPILKAN DATA TERTENTU
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu; 
$cursor = $collection->find(array('nama'=>'dendie'));
foreach ($cursor as $val) {
  echo 'ID :'.$val["_id"];
  echo 'NAMA :'.$val["nama"];
  echo 'KOMENTAR :'.$val["komentar"];			
}
	
Pada contoh diatas melakukan pencarian data pada field nama yang memiliki sama dengan dendie pada collection bernama bukutamu.

10. MENAMPILKAN DATA YANG MENGANDUNG KATA TERTENTU
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu; 

$cursor =$collection->find(array("nama" => new MongoRegex("/en/")));
foreach ($cursor as $val) {
  echo 'ID :'.$val["_id"];
  echo 'NAMA :'.$val["nama"];
  echo 'KOMENTAR :'.$val["komentar"];			
}	
Pada contoh diatas melakukan pencarian data pada field nama yang mengandun kata en pada collection bernama bukutamu.

11. MENGHITUNG JUMLAH DATA
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu;
$count = $collection->count();
echo $count;	
Pada contoh diatas menghitung jumlah data pada collection bernama bukutamu.

12. UPDATE DATA
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu;
$collection->update(array('nama'=>'miftah'),array('$set'=>array('komentar'=>'komentar 2 di edit')));	
Pada contoh diatas melakukan update data pada field komentar untuk nama miftah pada collection bernama bukutamu.

13. Hapus data
$m = new Mongo();
$db = $m->sisfoKampus;
$collection = $db->bukutamu;
$collection->remove(array('nama'=>'miftah'));	
Pada contoh diatas menghapus data yang memiliki nama miftah pada collection bernama bukutamu.

Informasi lebih lengkap tentang PHP dan Monggo bisa didapat di

5 komentar:

  1. Mantap atrikel abang ini. Salam kenal bang.

    BalasHapus
  2. Thanks for infonya. Makasih dendie, terus berbagi ilmu yaah :)

    BalasHapus
  3. ini bisa dipakai di windows atau selain ubuntu?

    BalasHapus