MongoDB adalah sistem manajemen basis data sumber terbuka (DBMS) yang menggunakan model data berorientasi dokumen. Ini dianggap sebagai database NoSQL, karena tidak menggunakan model relasional, dan karena itu tidak menggunakan SQL sebagai bahasa kuerinya.
Model berorientasi dokumen memungkinkan MongoDB untuk menyimpan data semi-terstruktur yang tidak memerlukan skema tetap. Hal ini dapat dicapai melalui penggunaan dokumen JSON.
MongoDB digunakan oleh beberapa perusahaan terbesar di dunia, termasuk Facebook, Google, Nokia, MTV Networks, Cisco, Forbes, dan banyak lagi.
MongoDB juga merupakan DBMS lintas platform, yang saat ini mendukung Windows, Mac, Solaris, dan berbagai distribusi Linux pada saat penulisan.
Basis data MongoDB berbeda dengan basis data relasional, MongoDB menggunakan model berorientasi dokumen untuk menyimpan data. Dalam model berorientasi dokumen, data disimpan dalam dokumen koleksi. Dalam model relasional, data disimpan dalam baris tabel.
Koleksi
Di MongoDB, koleksi adalah sekelompok dokumen. Koleksi biasanya berisi dokumen yang memiliki topik serupa (seperti Pengguna, Produk, Postingan, dll).
Koleksi karena itu, dalam banyak hal, mirip dengan tabel dari model relasional.
Dokumen
Di MongoDB, dokumen disimpan sebagai JSON dokumen. JSON (JavaScript Object Notation) adalah standar yang memfasilitasi pertukaran data. Dokumen JSON mirip dengan dokumen XML karena data dapat disajikan secara hierarkis, dan dapat dibaca oleh manusia maupun komputer.
Berikut adalah contoh dokumen JSON. Seperti inilah tampilan dokumen di dalam database MongoDB.
{ artistname : "Deep Purple", albums : [ { album : "Machine Head", year : 1972, genre : "Rock" }, { album : "Stormbringer", year : 1974, genre : "Rock" } ] }
_id
field adalah pengidentifikasi unik untuk sebuah dokumen. MongoDB memungkinkan setiap dokumen diambil/direferensikan menggunakan bidang ini. Anda dapat menyediakan ini atau membiarkan MongoDB membuatnya.
Dengan menggunakan JSON, hasil kueri dapat dengan mudah diuraikan, dengan sedikit atau tanpa transformasi, langsung oleh JavaScript dan bahasa pemrograman paling populer. Ini karena dokumen JSON menggunakan konvensi nama/pasangan, dan array yang akrab dengan bahasa pemrograman paling populer seperti C, C++, C#, Java, JavaScript, Perl, Python, dan banyak lainnya. Ini mengurangi jumlah logika bisnis yang perlu dibangun ke dalam aplikasi yang menggunakan MongoDB.
Di balik layar, MongoDB sebenarnya menyimpan dokumen JSON dalam format kode biner yang disebut BSON. BSON memperluas JSON dengan mendukung tipe data tambahan dan menjadi efisien untuk encoding dan decoding dalam bahasa yang berbeda.
Tanpa skema
Setiap dokumen JSON dalam koleksi dapat berisi strukturnya sendiri. Oleh karena itu, tidak ada skema tetap yang membatasi jenis data yang dapat dimasukkan ke dalam database MongoDB.
Ini berbeda dengan database relasional di mana, Anda harus membuat skema terlebih dahulu (yaitu menentukan tabel, kolom, tipe data, dll), sebelum memasukkan data apa pun. Jika data tidak sesuai dengan skema, data tidak akan masuk ke database.
Dalam database MongoDB, tidak ada aturan untuk mengatakan bidang mana, atau berapa banyak bidang, yang harus dimiliki setiap dokumen. Misalnya, satu dokumen dari koleksi mungkin berisi nama, alamat, dan nomor telepon, sementara dokumen lain mungkin berisi nama dan alamat email.