Sebelum menulis query pertama, ada fondasi yang perlu disiapkan: skill dasar terminal CLI dan pemahaman format data JSON, instalasi MongoDB Community Server via Docker atau native, hingga verifikasi bahwa mongosh berhasil terhubung ke server database.

Selamat datang di series Belajar MongoDB! Series ini akan membawa kalian dari nol hingga siap membangun dan mengoperasikan MongoDB untuk skala produksi: mulai dari prasyarat dan setup environment, sejarah NoSQL, konsep dasar struktur data, CRUD, query lanjutan, schema design, aggregation, indexing, transaction, replica set, sharding, security, hingga studi kasus arsitektur e-commerce production-grade. Total 21 episode yang akan mengubah cara kalian berpikir tentang penyimpanan data.
Mengapa MongoDB begitu penting? Karena era modern dipenuhi data semi-terstruktur yang tidak selalu cocok dengan tabel kaku. MongoDB hadir sebagai document database dengan flexible schema, format data BSON, dan kemampuan horizontal scaling native. Seorang backend developer yang paham MongoDB akan jauh lebih siap menangani workload modern: katalog produk dengan atribut dinamis, event streaming, real-time analytics, hingga aplikasi skala besar.
Episode 0 ini adalah peta jalan. Sebelum membahas dokumen dan query, kita pastikan tiga hal: (1) skill dasar terminal dan JSON yang wajib kalian kuasai, (2) pemasangan MongoDB Community Server yang benar, dan (3) verifikasi bahwa client mongosh berhasil berbicara dengan server. Jangan melompat-lompat — fondasi yang goyah akan membuat episode-episode berikut terasa berat. Mari mulai.
MongoDB adalah produk yang hidup di dalam terminal. Kalian akan mengetik perintah mongosh, menjalankan script backup, dan membaca log server setiap hari. Pastikan kalian nyaman dengan hal-hal berikut:
pwd, cd, ls untuk berpindah dan melihat direktori.systemctl start mongod atau docker start mongo untuk menghidupkan database server.ps aux | grep mongod untuk memastikan server berjalan.27017 di localhost.pwd
ls -la
systemctl status mongod
ss -tlnp | grep 27017ss -tlnp | grep 27017 menampilkan apakah ada proses yang sedang mendengarkan di port 27017 — alat debugging pertama kalian saat server tidak bisa dihubungi.
MongoDB menyimpan data dalam format BSON yang sangat dekat dengan JSON. Sebelum belajar MongoDB, kalian wajib bisa membaca dan menulis JSON dengan nyaman: object { "key": "value" }, array [1, 2, 3], hingga nested document. Berikut contoh dokumen JSON sederhana yang akan sangat mirip dengan dokumen MongoDB:
{
"name": "Arman",
"role": "backend-engineer",
"skills": ["nodejs", "mongodb", "docker"],
"address": {
"city": "Jakarta",
"country": "Indonesia"
},
"isActive": true,
"age": 27
}Perhatikan bahwa field bisa berisi tipe data berbeda-beda: string, boolean, number, array, dan bahkan object bertingkat. Inilah kekuatan document database — kalian tidak perlu mendefinisikan kolom terlebih dahulu.
Cara paling cepat dan rapi adalah menggunakan Docker. Image resmi mongo tersedia untuk MongoDB Community Server, dan kalian bisa menjalankannya dengan satu baris perintah:
docker run --name mongo -p 27017:27017 -d mongo:7Opsi -p 27017:27017 memetakan port kontainer ke port host, sehingga client di host bisa mengakses database lewat mongodb://localhost:27017. Nama kontainer mongo memudahkan kalian menghentikan dan memulai ulang nanti.
docker ps
docker logs mongo
docker stop mongo
docker start mongodocker logs mongo adalah jendela utama kalian melihat pesan startup server, termasuk baris Waiting for connections yang menandakan MongoDB siap menerima koneksi.
Jika kalian tidak menggunakan Docker, MongoDB bisa dipasang langsung di sistem operasi. Di Ubuntu/Debian kalian bisa menggunakan paket resmi dari repo MongoDB:
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt update
sudo apt install -y mongodb-org
sudo systemctl enable --now mongodUntuk macOS, brew tap mongodb/brew && brew install mongodb-community adalah cara termudah. Untuk Windows, gunakan installer MSI resmi dari situs MongoDB dan jalankan MongoDB sebagai service.
mongosh adalah MongoDB Shell modern berbasis Node.js — pengganti shell mongo legacy yang sudah lama ditinggalkan. Inilah alat utama kalian sepanjang series ini untuk menulis query secara interaktif. Setelah server berjalan, sambungkan ke server lokal:
mongosh "mongodb://localhost:27017"Kalian juga bisa langsung masuk ke database tertentu:
mongosh "mongodb://localhost:27017/belajar"Setelah masuk, verifikasi koneksi dengan perintah sederhana:
Current Mongosh Log ID: 66xxxxxxxxxxxxxxxxxxxxxxxx
Connecting to: mongodb://localhost:27017/belajar
test> show dbs
admin 40.00 KiB
config 12.00 KiB
local 72.00 KiBshow dbs menampilkan daftar database yang tersedia. Tiga database default (admin, config, local) memang selalu ada; database belajar belum muncul karena belum ada data di dalamnya — MongoDB membuat database secara lazy saat pertama kali ada data ditulis.
Terminal memang sakti, tapi kadang kalian butuh pandangan visual terhadap data. Ada beberapa pilihan GUI yang populer:
Untuk series ini, rekomendasi saya adalah MongoDB Compass karena gratis dan resmi. Unduh dari situs resmi MongoDB, sesuaikan versinya dengan versi server kalian, lalu sambungkan ke mongodb://localhost:27017.
Sekarang mari rangkai semua yang sudah disiapkan menjadi serangkaian tes yang memastikan environment kalian benar-benar siap. Jalankan satu per satu dan pastikan outputnya sesuai:
mongosh --version
docker ps
mongosh "mongodb://localhost:27017" --eval "db.runCommand({ ping: 1 })"{
"ok": 1
}mongosh --version memastikan client terpasang dan mengembalikan versi (misal 2.x).docker ps memastikan kontainer mongo dalam status Up.ping dengan --eval memastikan client dan server bisa saling berbicara — respons { "ok": 1 } artinya koneksi sempurna.Info
Biasakan menulis catatan kecil tentang versi yang kalian pakai (MongoDB server, mongosh, dan OS). Versi sangat berpengaruh pada fitur: misalnya $setWindowFields baru ada di MongoDB 5.0+, sementara aggregate stage tertentu baru tersedia di versi lebih baru. Series ini menggunakan MongoDB 7.x sebagai patokan.
Server tidak berjalan. Error ECONNREFUSED saat masuk mongosh. Solusi: cek docker ps untuk Docker, atau systemctl status mongod untuk native install.
Port sudah dipakai. Jika ada aplikasi lain menduduki port 27017, MongoDB gagal start. Cek dengan ss -tlnp | grep 27017 dan matikan proses pemilik port, atau jalankan MongoDB di port lain.
Memakai shell legacy mongo. Shell mongo sudah deprecated dan tidak cocok dengan MongoDB 6+. Pastikan yang terpasang adalah mongosh, bukan mongo.
Mengabaikan verifikasi. Melewatkan tes ping berarti kalian tidak tahu apakah environment benar-benar sehat. Selalu verifikasi setelah instalasi apa pun.
Docker container tidak persisten. Menjalankan docker run --rm akan menghapus data begitu kontainer berhenti. Untuk data yang ingin disimpan, gunakan volume (-v mongo-data:/data/db) — kita akan membahasnya lebih dalam di episode backup.
Warning
Untuk seri belajar, instalasi default tanpa username dan password memang wajar — koneksi lokal tanpa autentikasi. Tapi begitu MongoDB dipakai di luar laptop kalian (server cloud, Docker exposed ke jaringan), autentikasi dan TLS wajib diaktifkan. Kita akan membahas keamanan menyeluruh di episode 17. Untuk sekarang, cukup pahami bahwa default MongoDB tidak aman untuk jaringan publik.
Di episode 0 ini kalian telah memastikan tiga fondasi: skill dasar terminal CLI (navigasi filesystem, manajemen proses, pemahaman port 27017) dan pemahaman format JSON sebagai bahasa utama MongoDB, instalasi MongoDB Community Server via Docker atau native, serta verifikasi koneksi lewat mongosh dan perintah ping yang mengembalikan { "ok": 1 }.
Inti yang harus dibawa pulang:
27017; pastikan server hidup sebelum terhubung.mongosh adalah shell modern pengganti mongo legacy — biasakan memakainya.db.runCommand({ ping: 1 }) setelah setup apa pun.Ingat, series Belajar MongoDB terdiri dari 21 episode yang saling membangun. Episode 0 ini adalah batu bata pertama — dan kalian baru saja meletakkannya. Di episode 1 berikutnya kita mundur sejenak untuk memahami sejarah, konsep NoSQL, dan mengapa memilih MongoDB: keterbatasan RDBMS klasik, empat kategori NoSQL, kelahiran MongoDB dari tangan 10gen, serta perbandingannya dengan PostgreSQL, DynamoDB, dan Firestore. Sampai jumpa di episode 1, dan selamat membangun laboratorium MongoDB kalian!