MongoDB merupakan sebuah document oriented database yaitu database yang terdiri dari key dan value. MongoDB ini ditulis menggunakan C++, beberapa fitur yang dimiliki oleh MongoDB yaitu Documen-oriented storage, full index support, replication & high availability, auto-sharding, querying, fast in-place updates, map/reduce, gridFS.
Berdasarkan hasil benchmark yang penulis lakukan untuk project klikmedia, performa MongoDB 4x lebih cepat dibandingkan Mysql
Yang saya suka pada MongoDB ini adalah kita tidak perlu membuat struktur tabel, jadi ketika kita ingin melakukan proses insert, maka MongoDB akan otomatis membuatkan struktur tabelnya.
Apa itu MongoDB
MongoDB merupakan sebuah sistem basis data yang berbasis dokumen (Document Oriented Database). Konsep ini sangat membingungkan kalo kita terbiasa dengan RDMS. Sebelum membaca sebaiknya anda tinggalkan dlu konsep RDBMS anda. MongoDB tidak ada yang namanya tabel, kolom dan baris. Dalam MongoDB yang ada hanyalah koleksi (collection – bisa dianggap Table) dan dokumen (document – bisa dianggap row). Koleksi dalam MongoDB bisa kita anggap sebuah Folder (Directory) dan Dokumen bisa kita anggap berkas (File) dalam Folder (Koleksi) tersebut.
Pada MongoDb kita tidak mengenal istilah RELASI karena kita befikir dalam kerangka dokumen. semua yang kita butuhkan diletakkan didalam sebuah dokumen.
Keuntungan Menggunakan MongoDB
MongoDB merupakan sistem basis data yang menggunakan konsep key-value, artinya setiap dokumen dalam MongoDB pasti memiliki key. Hal ini berbeda dalam RDMBS yang kita bisa tidak menggunakan primary key ketika membuat sebuah tabel. Sehingga walaupun kita membuat sebuah dokumen tanpa menggunakan primary key, tapi secara otomatis MongoDB memberinya sebuah key. Penggunaan konsep key-value sangat berperan penting, karena hal ini membuat MongoDB menjadi sistem basis data yang sangat cepat jika dibandingkan dengan non key-value seperti RDBMS.
MongoDB mendukung replikasi, selain itu konfigurasi replikasi pada MongoDB sangatlah mudah jika dibandingkan sistem basis data RDBMS (IMHO). Hal ini membuat pemilik sistem yang memiliki traffic membaca tinggi (seperti portal berita, forum dan blog) akan sangat terbantu ketika sistemnya akan menggunakan replikasi.
Selain replikasi, MongoDB juga mendukung sharding. Jika Anda pernah melakukan sharding di RDBMS yang sangat berdarah-darah , maka akan sangat kagum dengan sharding di MongoDB. Kapan kita menggunakan sharding? Saat Anda memiliki website yang sudah sangat besar jumlah penggunanya, datanya mencapat jutaan giga byte. Anda dapat menggunakan sharding, misal membasis basis data Anda menjadi per regional.
Salah satu kelebihan MongoDB lainnya adalah, MongoDB mendukung model pemrograman MapReduce, sebuah konsep yang sangat fenomenal yang pernah dikeluarkan oleh Google dan saat ini banyak diimplementasikan seperti pada Apache Hadoop.
MongoDB memiliki banyak sekali kelebihan yang diantaranya, yaitu:
1. Sangat bagus untuk data list produk, karena MongoDB bisa melakukan searching lebih cepat ketimbang MySql
2. Kita tidak perlu membuat struktur tabel, kita hanya perlu melakukan proses insert maka MongoDB akan otomatis membuatkan struktur tabelnya
3. Proses CRUD (Create, Update, Delete) terasa sangat ringan (waktu saya mencobanya menggunakan PHP)
Bahasa MongoDb
MongoDB tidak menggunakan bahasa yang biasa digunakan RDBMS (SQL atau PL/SQL). MongoDB menggunakan bahasa BSON, dimana BSON merupakan singkatan dari Binary JSON. Jika Anda terbiasa menggunakan JavaScript, pasti tidak akan terlalu sulit menggunakan MongoDB. Berikut ini contoh
{
"username" : "bob",
"address" : {
"street" : "123 Main Street",
"city" : "Springfield",
"state" : "NY"
}
}
Perbandingan MongoDB
Perhatikan perbandingan MongoDB dan Database lainnya pada gambar berikut: