Server MongoDB sudah berjalan, tetapi kita belum punya alat untuk berbicara dengannya. Peran itu diisi mongosh — MongoDB Shell resmi, sebuah REPL (Read-Eval-Print Loop) berbasis Node.js yang mengeksekusi perintah JavaScript dan langsung menampilkan hasilnya. Shell lama bernama mongo sudah lama dihapus dari paket MongoDB, jadi mongosh adalah satu-satunya shell resmi saat ini. Chapter ini memasang mongosh di tiga sistem operasi, memverifikasi versinya, lalu mengenal isi sesi pertama kita.

Apa itu mongosh #

mongosh bukan sekadar penerjemah perintah database. Karena dibangun di atas Node.js, seluruh ekspresi JavaScript modern bisa dijalankan langsung di dalamnya — dari perhitungan sederhana sampai method bawaan array:

js
[1, 2, 3].map(x => x * 2)

Output yang Dihasilkan:

text
[ 2, 4, 6 ]

REPL mongosh membaca ekspresi map pada baris tersebut, mengeksekusinya, lalu mencetak array hasilnya. Kemampuan ini akan sering kita manfaatkan nanti: memformat hasil query, menyimpan hasil agregasi ke variabel, atau menguji potongan logika tanpa keluar dari shell.

Instalasi per Sistem Operasi #

Ubuntu / Debian #

Paket mongosh tersedia di repositori resmi MongoDB yang sudah kita daftarkan pada Chapter Instalasi MongoDB Community. Bila repositori tersebut sudah aktif, satu perintah cukup:

bash
sudo apt-get install -y mongodb-mongosh

Pada instalasi server lewat metapackage mongodb-org, paket ini biasanya sudah ikut terpasang sebagai dependensi — apt cukup akan menjawab bahwa mongodb-mongosh sudah berada pada versi terbaru.

macOS #

Formula mongosh tersedia langsung di Homebrew:

bash
brew install mongosh

Windows #

Unduh dari mongodb.com/try/download/shell , lalu pilih versi 2.13.x, platform Windows x64, dan paket msi. Jalankan installer grafisnya seperti aplikasi Windows pada umumnya. Alternatif non-administrator: unduh paket zip, ekstrak, lalu tambahkan folder hasil ekstraksi (berisi mongosh.exe) ke environment variable PATH:

bash
tar -xf mongosh-2.13.0-win32-x64.zip

Memverifikasi Versi #

Apa pun metode instalasinya, verifikasi mengecek satu hal: perintah mongosh dikenali sistem dan versinya memadai. Jalankan:

bash
mongosh --version

Output yang Dihasilkan:

text
2.13.0

Bila terminal menjawab command not found, binary mongosh belum berada di PATH — ulangi langkah instalasi dan pastikan penambahan PATH (khususnya pada metode zip di Windows) benar-benar selesai.

Sesi Pertama dan Keluar #

Dengan server lokal yang hidup, jalankan mongosh tanpa argumen apa pun:

bash
mongosh

Output yang Dihasilkan:

text
Current Mongosh Log ID: 6ad374d3e8ade47a7ac64031
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.13.0
Using MongoDB:          9.0.2
Using Mongosh:          2.13.0

For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/

Banner tersebut merangkum tiga informasi penting: alamat yang dicoba dihubungi (Connecting to:), versi server di ujung koneksi (Using MongoDB:), dan versi shell itu sendiri (Using Mongosh:). Nilai Log ID berbeda pada setiap sesi, dan baris Connecting to: memperlihatkan bahwa tanpa argumen mongosh memanggil 127.0.0.1:27017 — persis server yang kita jalankan di Chapter sebelumnya.

Setelah banner, mongosh menampilkan prompt yang siap menerima perintah. Untuk mengenal kemampuannya, kita bisa meminta shell mencantumkan method yang tersedia pada objek database:

js
db.help()

Output yang Dihasilkan (dipotong):

text
  Database Class:

    getMongo                                   Returns the current database connection
    getName                                    Returns the name of the DB
    getCollectionNames                         Returns an array containing the names of all collections in the current database.
    getCollectionInfos                         Returns an array of documents with collection information, i.e. collection name and options, for the current database.
    runCommand                                 Runs an arbitrary command on the database.
    adminCommand                               Runs an arbitrary command against the admin database.
    aggregate                                  Runs a specified admin/diagnostic pipeline which does not require an underlying collection.
    getSiblingDB                               Returns another database without modifying the db variable in the shell environment.

db.help() mencetak daftar method milik kelas Database beserta ringkasan fungsinya. Dari cuplikan di atas terlihat beberapa method yang akan sering kita pakai di sepanjang Course: getCollectionNames() untuk daftar collection, runCommand() untuk perintah tingkat rendah, dan adminCommand() untuk perintah administratif seperti ping.

Untuk mengakhiri sesi, gunakan salah satu dari tiga cara: ketik exit, ketik quit(), atau tekan Ctrl+D. Semuanya menutup koneksi dengan rapi lalu kembali ke terminal sistem operasi.

Rangkuman #

  • mongosh adalah shell resmi satu-satunya; shell lama mongo sudah tidak ada.
  • Karena berbasis Node.js, mongosh menjalankan ekspresi JavaScript modern, bukan hanya perintah database.
  • Instalasi: apt dengan paket mongodb-mongosh, brew install mongosh, atau MSI/ZIP dari MongoDB Download Center.
  • mongosh --version memverifikasi instalasi; 2.13.0 adalah versi yang dipakai Course ini.
  • Sesi dibuka cukup dengan mongosh (terhubung ke 127.0.0.1:27017) dan ditutup dengan exit, quit(), atau Ctrl+D.