Semua komponen telah terpasang: mongod berjalan, mongosh dikenali, dan connection string sudah dipahami. Sebelum melangkah ke materi inti Course, kita jalankan satu rangkaian pemeriksaan terakhir yang menyatukan semuanya — dari versi binary, respons server, topologi, sampai putaran tulis-baca-bereskan data yang sesungguhnya. Rangkaian ini sekaligus menjadi latihan pertama kita menjalankan perintah MongoDB dari ujung ke ujung.
Pemeriksaan yang akan kita lewati:
- Versi
mongoddari terminal dan dari dalam shell. - Respons
pingserta identitas server lewathello. - Daftar database yang ada di server.
- Satu siklus
insertOne()→findOne()→dropDatabase().
Memeriksa Versi mongod #
Mulai dari luar shell. Perintah berikut memastikan binary server dikenali sistem dan melaporkan versinya:
mongod --versionOutput yang Dihasilkan:
db version v9.0.2
Build Info: {
"version": "9.0.2",
"gitVersion": "c4d309807b94ac30edcca32e35e88a9598eadfc8",
"openSSLVersion": "OpenSSL 3.5.7 9 Jun 2026",
"modules": [],
"allocator": "tcmalloc-google",
"javascriptEngine": "mozjs-wasm",
"environment": {
"distmod": "debian13",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}Baris pertama (db version v9.0.2) adalah yang paling penting: Course ini ditulis dan diuji pada MongoDB 9.0, sehingga hasil serupa menandakan lingkungan kita sejalan dengan seluruh contoh berikutnya. Blok Build Info di bawahnya merinci versi library dan arsitektur binary — nilainya boleh berbeda sesuai platform instalasi.
Ping, Versi, dan Topologi dari Shell #
Sekarang dari dalam mongosh. Perintah ping adalah cara termurah memastikan server merespons:
db.adminCommand({ ping: 1 })Output yang Dihasilkan:
{
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ t: 1792243653, i: 1 }),
signature: {
hash: Binary.createFromBase64('AAAAAAAAAAAAAAAAAAAAAAAAAAA=', 0),
keyId: Long('0')
}
},
operationTime: Timestamp({ t: 1792243653, i: 1 })
}Field ok: 1 adalah tanda perintah berhasil; field clusterTime dan operationTime adalah cap waktu replikasi yang nilainya berubah pada setiap eksekusi. Lanjut ke versi server dan identitasnya:
db.version()Output yang Dihasilkan:
9.0.2db.hello()Output yang Dihasilkan:
{
topologyVersion: { processId: ObjectId('6ad372929d08d4e3fde1a38f'), counter: Long('6') },
hosts: [ '127.0.0.1:27017' ],
setName: 'rs0',
setVersion: 1,
isWritablePrimary: true,
secondary: false,
primary: '127.0.0.1:27017',
me: '127.0.0.1:27017',
electionId: ObjectId('7fffffff0000000000000008'),
lastWrite: {
opTime: { ts: Timestamp({ t: 1792243653, i: 1 }), t: Long('8') },
lastWriteDate: ISODate('2026-10-17T13:27:33.000Z'),
majorityOpTime: { ts: Timestamp({ t: 1792243653, i: 1 }), t: Long('8') },
majorityWriteDate: ISODate('2026-10-17T13:27:33.000Z')
},
maxBsonObjectSize: 16777216,
maxMessageSizeBytes: 48000000,
maxWriteBatchSize: 100000,
localTime: ISODate('2026-10-17T13:27:38.637Z'),
logicalSessionTimeoutMinutes: 30,
connectionId: 137,
minWireVersion: 0,
maxWireVersion: 29,
readOnly: false,
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ t: 1792243653, i: 1 }),
signature: {
hash: Binary.createFromBase64('AAAAAAAAAAAAAAAAAAAAAAAAAAA=', 0),
keyId: Long('0')
}
},
operationTime: Timestamp({ t: 1792243653, i: 1 })
}Dokumen hello adalah kartu identitas server. Tiga field teratas yang perlu kita cermati: isWritablePrimary: true berarti server menerima operasi tulis, setName: 'rs0' menandakan server ini anggota replica set bernama rs0, dan hosts memuat daftar anggotanya — dalam kasus kita satu node di 127.0.0.1:27017. Bila server kita berjalan standalone (tanpa replSetName), field setName dan hosts tidak akan muncul; keduanya hanya dimiliki anggota replica set. Field lain seperti maxBsonObjectSize melaporkan batas teknis protokol, sementara localTime adalah jam server saat menjawab.
Melihat Daftar Database #
Pemeriksaan berikutnya: melihat isi server dari luar:
show dbsOutput yang Dihasilkan:
admin 80.00 KiB
config 228.00 KiB
echo_test 40.00 KiB
local 428.00 KiBTiga nama yang selalu ada pada instalasi baru adalah admin (menyimpan pengguna dan peran), config (metadata, termasuk konfigurasi replica set), dan local (data internal node seperti oplog). Nama echo_test pada keluaran di atas adalah bekas database uji pada server yang dipakai menulis Course ini — bukti bahwa daftar ini mengikuti riwayat pemakaian server. Ukuran setiap database juga berubah mengikuti jumlah datanya.
Uji Tulis dan Baca #
Pemeriksaan versi membuktikan server bisa bicara; pemeriksaan ini membuktikan server bisa bekerja. Kita akan membuat database latihan, menyimpan satu document, membacanya kembali, lalu membersihkan jalannya. Mulai dengan memilih database:
use latihan_verifikasiOutput yang Dihasilkan:
switched to db latihan_verifikasiPerintah use mengalihkan database aktif ke latihan_verifikasi — database ini dibuat otomatis begitu kita menulis data pertama ke dalamnya. Sekarang simpan satu document ke collection peserta:
db.peserta.insertOne({ nama: "Budi", level: "pemula" })Output yang Dihasilkan:
{
acknowledged: true,
insertedId: ObjectId('6ad377ca2919fa3d7374eab2')
}Bedah singkat hasilnya: acknowledged: true berarti server mengonfirmasi penyimpanan, dan insertedId memuat _id yang dibuat otomatis karena kita tidak menyertakannya — nilai unik tersebut berbeda pada setiap eksekusi. Buktikan bahwa data benar-benar tersimpan dengan membacanya kembali:
db.peserta.findOne()Output yang Dihasilkan:
{
_id: ObjectId('6ad377ca2919fa3d7374eab2'),
nama: 'Budi',
level: 'pemula'
}findOne() mengembalikan document pertama yang ditemukan, lengkap dengan field _id yang sama seperti hasil insertOne — putaran tulis lalu baca telah sukses. Karena database kini berisi data, show dbs mulai menghitungnya:
show dbsOutput yang Dihasilkan:
admin 80.00 KiB
config 228.00 KiB
echo_test 40.00 KiB
latihan_verifikasi 8.00 KiB
local 428.00 KiBlatihan_verifikasi muncul dengan ukuran kecil — persis seperti dijelaskan sebelumnya bahwa database baru terdaftar setelah menampung data. Sebagai penutup, hapus database latihan ini:
db.dropDatabase()Output yang Dihasilkan:
{ ok: 1, dropped: 'latihan_verifikasi' }Nilai dropped: 'latihan_verifikasi' mengonfirmasi nama database yang dihapus. Setelah perintah ini, show dbs kembali menampilkan database bawaan saja.
Rangkuman #
Rangkaian pemeriksaan lengkap pada Chapter ini bisa dirangkum menjadi tabel siap pakai:
| Pemeriksaan | Perintah | Hasil yang diharapkan |
|---|---|---|
| Binary server dikenali | mongod --version | db version v9.0.x |
| Server merespons | db.adminCommand({ ping: 1 }) | ok: 1 |
| Versi server | db.version() | 9.0.x |
| Topologi dan hak tulis | db.hello() | isWritablePrimary: true |
| Isi server | show dbs | admin, config, local |
| Siklus tulis-baca | insertOne() lalu findOne() | acknowledged: true, document kembali |
| Pembersihan | db.dropDatabase() | dropped: 'latihan_verifikasi' |
Bila seluruh baris di atas lolos, lingkungan kita siap untuk seluruh Course: server sehat, shell terhubung, dan jalur data berfungsi dua arah. Section berikutnya mulai menyelami inti MongoDB — database, collection, dan document.