MongoDB merupakan salah satu jenis database, lebih tepatnya masuk dalam kategori Document-oriented Database. MongoDB dikembangkan sejak Oktober 2007 oleh 10Gen, dirilis publik sejak Februari 2009 dan dilepas dengan lisensi GNU AGPL 3.0 dan Apache License untuk drivernya.
MongoDB sendiri ditulis dengan bahasa C++ dan telah tersedia untuk berbagai jenis bahasa pemrograman. Fitur utama dari mongoDB antara lain:
- model document-oriented storage
- dukungan penuh untuk indexing data
- mendukung replikasi database dan trafik data tinggi
- auto-sharding (partisi database otomatis)
- mendukung fitur map and reduce
- mendukung arsitektur gridFS
Selain fitur utama diatas, perbedaan nyata yang mungkin akan kita alami dalam penggunaan mongodb dibanding database lain (mysql, mssql, postgresql, dll) adalah saat proses penyiapan struktur. Setiap database berbasis mongodb akan terdiri atas suatu collection, dimana collection itu terdiri atas beberapa document. Bila dianalogikan dengan bahasa SQL, maka Collection adalah table, dan Document adala row table. Karena MongoDB tidak mengenal konsep tabel dan row, maka saat proses insert data kita lakukan, mongodb akan otomatis membuatkan struktur tabelnya (baca: struktur koleksi database-nya).
Bahasa MongoDB
MongoDB tidak menggunakan bahasa SQL, tapi menggunakan bahasa BSON (Binary JSON). JSON adalah konsep pertukaran data secara ringkas, terstruktur, sederhana, asosiatif dan terserialisasi.
Contoh bahasa BSON dalam mongodb ini antara lain:
1. Insert data
[sourcecode]
{
"nama_depan" : "luthfi",
"nama_belakang" : "emka",
"alamat" : {
"desa" : "Bulungkulon",
"rt" : "6",
"rw" : "VI",
"kecamatan" : "Jekulo",
"kabkota" : "Kudus",
"propinsi" : "Jawa tengah"
}
}
[/sourcecode]
2. Searching data
> db.mahasiswa.find({“alamat.desa” : “bulungkulon”})
Sampai saat ini, bahasa pemrograman yang telah mendukung MongoDB antara lain: C, C++, C#, Haskell, Java, JavaScript, Lisp, Perl, PHP, Python, Ruby dan Scala. Disamping itu dengan sedikit usaha, kita masih bisa menggunakan MongoDB dengan driver database tidak resmi (dari komunitas mongodb saja) untuk bahasa C#.NET, ColdFusion, Delphi, Erlang, Factor, Fantom, Go, JVM, Lua, node.js, Racket dan Smalltalk.
GUI
Ada beberapa aplikasi GUI yang dapat digunakan untuk mengelola mongodb, antara lain:
- Fang of Mongo (web-based)
- Futon4Monggo (web-based)
- Mongo3 (ruby-based),
- MongoHub (OSX-apps),
- Opricot (web-based),
- Database Master (Win32)