Aplikasi modern hampir selalu perlu menyimpan dan membaca data: daftar produk, profil pengguna, log sensor, sampai riwayat pesanan. Selama puluhan tahun, database relasional seperti MySQL dan PostgreSQL menjadi pilihan baku untuk kebutuhan tersebut. MongoDB hadir sebagai alternatif yang menyimpan data dalam bentuk document mirip JSON — bentuk yang alami bagi aplikasi dan luwes terhadap perubahan kebutuhan.

Chapter ini menjawab pertanyaan paling mendasar sebelum kita menyentuh terminal: apa sebenarnya MongoDB dan bagaimana bentuk data yang dipakainya. Peta materinya:

  • konsep database document beserta hierarki database, collection, dan document;
  • format BSON sebagai representasi biner di balik setiap document;
  • karakteristik utama MongoDB sebagai satu kesatuan produk;
  • sekilas sejarah dan asal nama MongoDB.

Database yang Menyimpan Document #

MongoDB adalah document database: database yang menyimpan sekumpulan data sebagai document. Satu document berbentuk pasangan key-value yang mirip objek JSON, sehingga mudah dibaca manusia dan mudah dipetakan ke object di dalam kode aplikasi.

Sebagai analogi awal, kita dapat membayangkan MongoDB seperti kumpulan berkas JSON yang dikelompokkan dalam folder: satu folder untuk produk, satu folder untuk pelanggan. Batas analoginya perlu dinyatakan jelas: folder dan berkas di sistem operasi tidak punya query language, index, maupun transaksi, sedangkan MongoDB memilikinya semua. Analogi tersebut hanya membantu memvisualisasikan struktur penyimpanan, bukan kemampuan produknya.

Hierarki resminya terdiri atas tiga lapis:

Diagram di atas memperlihatkan istilah yang akan kita pakai berulang kali di seluruh Course:

  • Database — wadah paling atas; satu instalasi MongoDB dapat memuat banyak database yang saling terpisah.
  • Collection — kelompok document di dalam satu database; padanan longgar untuk table di dunia relasional.
  • Document — satu unit data; padanan longgar untuk row, tetapi dapat menampung struktur bersarang seperti object dan array.

BSON, Format di Balik Document #

Di layar kita melihat document yang mirip JSON, tetapi di jaringan dan di disk MongoDB menyimpannya dalam format BSON (Binary JSON): representasi biner untuk struktur mirip JSON. BSON melengkapi JSON standar dengan tipe data tambahan, antara lain Date, ObjectId, integer 64-bit, Decimal128, dan binary data. Satu document dibatasi ukuran maksimal 16 MB.

Contoh berikut memperlihatkan bentuk document produk dalam notasi yang tampil di mongosh:

js
// mdtest: skip
{
  _id: ObjectId("6f1a2b3c4d5e6f7a8b9c0d1e"),
  nama: "Kopi Gayo Arabica",
  harga: 85000,
  stok: 40,
  tag: ["arabica", "single origin"],
  penjual: { nama: "Budi", kota: "Takengon" },
  dibuat: ISODate("2026-09-01T08:00:00Z")
}

Blok di atas adalah ilustrasi bentuk document, bukan perintah yang dijalankan; kita baru menulis data sungguhan pada section berikutnya. Mari kita bedah isinya per bagian:

  1. _id — identitas unik document. MongoDB otomatis membuat field ini dan mengisinya dengan ObjectId 12 byte apabila kita tidak menentukan nilai lain.
  2. nama, harga, stok — field sederhana; nilainya berupa string dan number, dua tipe yang paling sering dipakai.
  3. tag — array; satu field dapat menampung banyak nilai, dan array tetap dapat di-index serta dicari isinya.
  4. penjual — embedded document (document bersarang); data yang berhubungan erat ikut hidup di dalam document induk.
  5. dibuat — bertipe Date, salah satu contoh tipe yang tidak tersedia di JSON standar sehingga BSON perlu mendefinisikannya.

Karakteristik Utama MongoDB #

Lima karakteristik berikut membentuk identitas MongoDB sebagai produk:

  • Skema fleksibel. Document dalam satu collection tidak wajib memiliki kumpulan field yang sama, sehingga perubahan bentuk data tidak menuntut migrasi tabel besar-besaran.
  • Query language ekspresif. Kita dapat memfilter berdasarkan field bersarang, mengurutkan, memilih field tertentu (projection), hingga mengolah data dengan aggregation pipeline bertahap.
  • Index B-tree. Seperti database pada umumnya, MongoDB memakai struktur B-tree untuk index, termasuk index atas field bersarang dan elemen array.
  • Replikasi dan sharding bawaan. Data dapat direplikasi ke beberapa node lewat replica set, dan collection besar dapat dipecah ke banyak server lewat sharding.
  • Ekosistem driver resmi. Driver tersedia untuk puluhan bahasa, mulai dari JavaScript/Node.js, Python, Java, hingga Go, sehingga aplikasi berbicara dengan MongoDB secara idiomatik.

Sekilas Sejarah dan Nama MongoDB #

MongoDB dikembangkan sejak 2007 oleh perusahaan 10gen sebagai bagian dari platform aplikasi, lalu dirilis ke publik pada 2009 sebagai database mandiri. Pada 2013 perusahaan pengembangnya berganti nama menjadi MongoDB, Inc. Nama “MongoDB” diambil dari kata Inggris humongous yang berarti “sangat besar” — penegasan bahwa database ini memang menyasar data berskala besar.

Saat Course ini ditulis, MongoDB 9.0 adalah versi stabil saat ini, sementara versi 8.0 masih berada dalam masa dukungan panjang. Keduanya dapat dipakai untuk mengikuti materi di Course ini, dan semua contoh kode diuji pada MongoDB 9.0.

Rangkuman #

  • MongoDB adalah document database: data disimpan sebagai document BSON yang mirip JSON, dikelompokkan dalam collection di dalam database.
  • BSON melengkapi JSON dengan tipe seperti Date, ObjectId, dan Decimal128; satu document dibatasi ukuran 16 MB.
  • MongoDB tetap memiliki query language ekspresif, index B-tree, replikasi, dan sharding — kemampuan yang tidak dimiliki analogi “folder berisi berkas JSON”.
  • Fleksibilitas skema tidak menghapus kebutuhan merancang skema; kita hanya mendapat kebebasan lebih besar dalam menata bentuk document.