Memasang dan Mengurus Pangkalan Data MongoDB dalam ServBay
MongoDB ialah pangkalan data dokumen NoSQL terkemuka yang dikenali untuk fleksibiliti, keupayaan kuiri yang kuat dan skalabiliti melintang, menjadikannya pilihan utama dalam pembangunan aplikasi moden. ServBay membawakan persekitaran integrasi luar biasa untuk pembangun macOS, memudahkan pemasangan, konfigurasi, dan pengurusan pelbagai versi MongoDB, lengkap dengan set alat baris perintah asas untuk membina stesen kerja pembangunan & ujian tempatan yang cekap dan lengkap untuk anda.
Gambaran Keseluruhan: Kenapa Guna MongoDB dalam ServBay?
ServBay bukan sekadar pelancar; ia pengurus persekitaran pembangunan yang lengkap. Untuk MongoDB, ini bermakna:
- Sokongan Pelbagai Versi & Pertukaran Mudah: Anda boleh memasang dan menjalankan beberapa versi MongoDB (seperti 5.0, 6.0, 7.0) dengan satu klik, serta menukar versi berdasarkan keperluan projek tanpa perlu risau konflik persekitaran.
- Konfigurasi Secara Grafik: Tiada lagi penyuntingan manual fail konfigurasi yang melecehkan. Dalam antara muka grafik ServBay, anda boleh mengkonfigurasi semua parameter utama MongoDB seperti port, IP, direktori data dan lain-lain secara visual.
- Rantaian Alat Integrasi: ServBay mengurus dan mengintegrasikan secara automatik MongoDB Shell (
mongosh
) dan Alat Pangkalan Data MongoDB, membolehkan anda terus menggunakan alat penting sepertimongostat
,mongotop
,mongodump
, danmongorestore
selepas pemasangan.
Panduan ini akan memberikan anda langkah-langkah penuh dari mula hingga mahir, meliputi pemasangan, konfigurasi, pengurusan interaktif, pemantauan prestasi masa nyata, serta sandaran & pemulihan data.
1. Pemasangan & Konfigurasi Perkhidmatan MongoDB
Langkah 1: Pasang Pakej Perisian MongoDB
Memasang perkhidmatan MongoDB dalam ServBay adalah langkah pertama.
Buka aplikasi ServBay.
Pada bar sebelah kiri, klik Pakej (Packages).
Dalam senarai pakej, tatal ke bawah ke kategori
Databases
dan cari bahagianMongoDB
.Pilih versi MongoDB yang anda perlukan untuk projek anda (cont.
MongoDB 7.0
), lalu klik butang pasang di sebelah kanan. ServBay akan memuat turun dan memasang secara automatik.
Langkah 2: Konfigurasi Lanjut Perkhidmatan MongoDB
Selepas pemasangan, anda boleh melaras konfigurasi MongoDB dengan lebih terperinci.
Pada bar navigasi, klik Databases -> MongoDB -> versi yang baru dipasang (cth.
MongoDB 7.0
).Dalam paparan ini, anda boleh menyesuaikan parameter utama berikut:
- Bind IP (IP Terikat): Alamat IP tempat MongoDB mendengar permintaan rangkaian. Lalai
127.0.0.1, ::1
adalah tetapan pembangunan tempatan paling selamat—yang membenarkan sambungan hanya daripada mesin sendiri. - Bind Port (Port Terikat): Port sambungan pangkalan data. Port lalai standard MongoDB ialah
27017
, kekalkan kecuali adanya keperluan khas. - Socket: Laluan fail soket Unix. Untuk sambungan tempatan, penggunaan Unix Socket lebih efisien daripada TCP/IP kerana ia memintas lapisan rangkaian.
- Data dir (Direktori Data): Laluan cakera tempatan tempat MongoDB menyimpan semua fail pangkalan data (termasuk koleksi, indeks dan lain-lain). ServBay menetapkan nilai lalai yang munasabah, anda boleh klik ikon folder di sebelah kanan untuk mencari lokasi ini dengan pantas dalam Finder.
- Additional Parameters (Parameter Tambahan): Zon konfigurasi lanjutan di mana anda boleh tambah parameter permulaan MongoDB lain. Contohnya, untuk mengaktifkan kawalan akses, boleh tambahkan
--auth
.
- Bind IP (IP Terikat): Alamat IP tempat MongoDB mendengar permintaan rangkaian. Lalai
Langkah 3: Mulakan Perkhidmatan MongoDB
- Selepas semua konfigurasi siap, pastikan anda klik butang Save (Simpan) di kanan bawah.
- Kembali ke halaman Pakej (Packages), cari versi MongoDB anda, kemudian klik suis kelabu di sebelah kanan untuk memulakan perkhidmatan.
- Apabila suis bertukar hijau dan indikator status menyala, MongoDB anda telah berjaya berjalan dan bersedia menerima sambungan.
2. Pengurusan Interaktif: Menguasai MongoDB Shell (mongosh
)
mongosh
ialah antaramuka baris perintah moden rasmi MongoDB. Ia menawarkan pewarnaan sintaks, auto-lengkap pintar, sejarah arahan, serta keupayaan skrip lanjutan—menjadikannya alat utama interaksi dengan pangkalan data.
Memasang MongoDB Shell
ServBay menyediakan mongosh
sebagai pakej berasingan untuk dipasang mengikut keperluan.
- Pada halaman Pakej (Packages), cari
MongoDB Shell
. - Klik butang pasang di sebelahnya. Selepas dipasang, arahan
mongosh
akan tersedia sepenuhnya dalam terminal kelolaan ServBay.
Cara Guna mongosh
Anda boleh menjalankan mongosh
pada mana-mana terminal yang menyokong persekitaran ServBay seperti Terminal macOS atau iTerm2.
Sambungan Asas: Buka terminal dan jalankan arahan mudah untuk menyambung terus ke MongoDB ServBay pada port 27017:
bashmongosh
1Atau gunakan rentetan sambungan penuh dengan parameter eksplisit:
bashmongosh "mongodb://127.0.0.1:27017"
1Contoh Operasi Interaktif (Amalan CRUD): Setelah berjaya bersambung, anda akan berada dalam persekitaran JavaScript interaktif yang hebat. Jom lihat satu contoh penuh.
Langkah 1: Pilih atau Cipta Pangkalan Data
javascript// Perintah ini akan bertukar ke pangkalan data servbay-demo. Jika belum wujud, ia akan dicipta automatik pada penulisan data pertama. use servbay-demo
1
2Langkah 2: Cipta Koleksi & Masukkan Data (Create)
javascript// Masukkan satu dokumen pengguna db.users.insertOne({ _id: 1, name: "Alice", email: "alice@servbay.demo", age: 30, tags: ["developer", "php", "backend"], joined_date: new Date("2023-01-15") }) // Masukkan beberapa dokumen pengguna untuk kuiri lebih pelbagai db.users.insertMany([ { _id: 2, name: "Bob", email: "bob@servbay.demo", age: 25, tags: ["designer", "ui", "frontend"] }, { _id: 3, name: "Charlie", email: "charlie@servbay.demo", age: 35, tags: ["developer", "python", "data"] }, { _id: 4, name: "Diana", email: "diana@servbay.demo", age: 29, tags: ["developer", "nodejs", "backend"] } ])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Langkah 3: Kuiri Data (Read)
javascript// Cari semua dokumen dalam koleksi dan paparkan dengan format .pretty() db.users.find().pretty() // Kuiri bersyarat: Cari semua pembangun berumur lebih 28 tahun db.users.find({ age: { $gt: 28 }, tags: "developer" }) // Hanya paparkan medan tertentu: fokus pada nama dan emel sahaja db.users.find({}, { name: 1, email: 1, _id: 0 })
1
2
3
4
5
6
7
8Langkah 4: Kemas Kini Data (Update)
javascript// Kemas kini satu dokumen: Tambah tag 'lead' pada Alice & kemas kini umur db.users.updateOne( { name: "Alice" }, { $set: { age: 31 }, $addToSet: { tags: "lead" } } // $addToSet memastikan tiada tag berulang ) // Kemas kini beberapa dokumen: Tambah status 'active' pada semua pembangun 'backend' db.users.updateMany( { tags: "backend" }, { $set: { status: "active" } } )
1
2
3
4
5
6
7
8
9
10
11Langkah 5: Padam Data (Delete)
javascript// Padam satu dokumen db.users.deleteOne({ name: "Bob" }) // Sahkan hasil padam db.users.find({ name: "Bob" }).count() // Sepatutnya pulang 0
1
2
3
4
5
3. Pemantauan Masa Nyata & Pengurusan: Menguasai Alat Pangkalan Data MongoDB
ServBay turut mengintegrasikan pakej MongoDB Database Tools
yang merangkumi mongostat
, mongotop
, mongodump
, dan mongorestore
untuk pengurusan dan operasi tahap profesional.
Memasang Alat Pangkalan Data MongoDB
- Pada halaman Pakej (Packages), cari
MongoDB Database Tools
. - Klik butang pasang.
3.1 Guna mongostat
untuk Pantau Status Masa Nyata
mongostat
umpama "elektrokardiogram" MongoDB—menunjuk pelbagai petunjuk utama pangkalan data pada kadar kemas kini tinggi. Ia sangat sesuai untuk diagnosa bottleneck prestasi dan memantau beban operasi.
Penggunaan Asas: Buka terminal baru dan jalankan perintah berikut untuk kemas kini setiap saat:
bashmongostat
1Anda akan melihat output contoh seperti di bawah; tiap baris ialah snapshot ketika itu:
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time *0 *0 *0 *0 0 1|0 0.0% 23.2% 0 1.29G 84.0M 0|0 1|0 103b 501b 4 Nov 26 15:30:00.001 *0 *0 *0 *0 0 1|0 0.0% 23.2% 0 1.29G 84.0M 0|0 1|0 71b 501b 4 Nov 26 15:30:01.001
1
2
3Penerangan lajur utama:
insert
,query
,update
,delete
: Bilangan operasi sesaat.dirty
: Peratusan data "kotor" (dilaksana tetapi belum ke cakera) dalam cache.used
: Peratusan cache digunakan oleh enjin storan.vsize
,res
: Penggunaan memori maya & residen.qrw
,arw
: Bilangan pelanggan baca/tulis menunggu dalam barisan.net_in
,net_out
: Trafik input & output rangkaian.conn
: Bilangan sambungan aktif.
Senario Praktikal: Pantau Beban Tulis Serentak Tinggi
- Buka terminal (Terminal A), sambungkan ke
mongosh
dan jalankan skrip simulasi log:javascript// Jalankan dalam mongosh use log_system print("Memulakan penulisan log frekuensi tinggi...") while (true) { db.app_logs.insertOne({ level: "INFO", message: "User activity detected.", timestamp: new Date() }); sleep(50); // Tulis sekali setiap 50ms (20 kali/saat) }
1
2
3
4
5
6
7 - Buka terminal lain (Terminal B), jalankan
mongostat
dengan kadar kemas kini 2 saat:bashmongostat 2
1 - Pantau output Terminal B, anda akan lihat nilai lajur
insert
sekitar*40
(20 memasukkan/sekat kesegaran * 2s), menandakan beban utama semasa ialah operasi penulisan.
- Buka terminal (Terminal A), sambungkan ke
3.2 Guna mongotop
untuk Jejak Masa Baca/Tulis Koleksi
Jika mongostat
memaklumkan "pangkalan sibuk", mongotop
pula menunjukkan "koleksi mana yang menyebabkan kesibukan". Ia jejaki masa operasi baca & tulis mengikut koleksi untuk mengenal pasti kelembapan atau bottleneck.
Penggunaan Asas: Jalankan
mongotop
dalam terminal, ia kemas kini setiap saat secara lalai.bashmongotop
1Contoh output:
ns total read write time local.oplog.rs 1101ms 155ms 946ms Nov 26 15:35:00.000 servbay-app.sessions 210ms 1ms 209ms Nov 26 15:35:00.000 servbay-app.articles 15ms 15ms 0ms Nov 26 15:35:00.000
1
2
3
4Penerangan lajur utama:
ns
: Namespace (nama_pangkalan.nama_koleksi
).total
: Masa baca & tulis keseluruhan di koleksi.read
: Masa digunakan operasi baca.write
: Masa digunakan operasi tulis.
Senario Praktikal: Kenal Pasti Koleksi Panas dalam Aplikasi
- Dalam Terminal A (
mongosh
), simulasi aplikasi yang kerap mengemas kini sesi pengguna dan sekali sekala membaca artikel:javascript// Jalankan dalam mongosh use servbay_app print("Mensimulasikan beban aplikasi...") // Kerap kemas kini sesi setInterval(() => { db.sessions.updateOne({ sid: "session_abc" }, { $set: { data: Math.random() } }, { upsert: true }); }, 50); // Setiap 50ms kemas kini sekali // Sesi membaca artikel yang kurang kerap setInterval(() => { db.articles.find({ tags: "featured" }).limit(5).toArray(); }, 500); // Setiap 500ms baca sekali
1
2
3
4
5
6
7
8
9
10
11
12 - Dalam Terminal B, jalankan
mongotop
dengan interval 5 saat:bashmongotop 5
1 - Pantau output Terminal B, anda akan perhatikan koleksi
servbay_app.sessions
memakan masawrite
dantotal
yang lebih tinggi, manakala masaread
untukservbay_app.articles
lebih rendah. Ini menunjukkan bottleneck aplikasi mungkin berpunca daripada operasi tulis sesi.
- Dalam Terminal A (
3.3 Guna mongodump
untuk Sandaran Data
mongodump
ialah alat teguh untuk mencipta sandaran dwibiner (BSON) bagi data MongoDB.
- Sandaran satu pangkalan data:bash
mongodump --db servbay-demo --out /Applications/ServBay/backup/mongodb/servbay-demo-backup-$(date +%F)
1 - Sandaran satu koleksi:bash
mongodump --db servbay-demo --collection users --out /Applications/ServBay/backup/mongodb/users-backup
1 - Sandaran seluruh instans MongoDB:bash
mongodump --out /Applications/ServBay/backup/mongodb/full-instance-backup
1
3.4 Guna mongorestore
untuk Pemulihan Data
mongorestore
digunakan untuk mengimport data sandaran (hasil mongodump
) ke dalam MongoDB.
- Pulihkan satu pangkalan data:bash
# Pilihan --drop akan mengosongkan koleksi sasaran sebelum pemulihan, menjamin hasil yang bersih mongorestore --drop --db servbay-demo /Applications/ServBay/backup/mongodb/servbay-demo-backup-2023-11-26/servbay-demo/
1
2 - Pulihkan satu koleksi ke koleksi baharu:bash
mongorestore --db servbay-demo --collection users_restored /Applications/ServBay/backup/mongodb/users-backup/users.bson
1
4. Sambungan Alat Antara Muka Grafik (GUI)
Selain baris perintah, anda boleh menggunakan alat GUI pengurusan MongoDB popular untuk menyambung dan mengurus pangkalan data dalam ServBay—sesuai untuk pelayaran data dan binaan pipelina agregat. Antara cadangan ialah MongoDB Compass, TablePlus, dan Studio 3T.
Maklumat sambungan yang perlu anda konfigurasikan pada alat GUI:
- Host (Hos):
127.0.0.1
- Port (Port):
27017
- Authentication (Pengesahan): Biarkan kosong kecuali anda telah mengaktifkan kawalan akses (
--auth
) serta mencipta pengguna khusus.
Rumusan
ServBay menggabungkan kehebatan MongoDB dengan pengalaman macOS yang elegan, membawakan persekitaran pembangunan tempatan tiada tandingan untuk pembangun. Dengan panduan ini, anda telah mempelajari cara memulakan dan menjalankan MongoDB dengan pantas, mengendalikan pengurusan terperinci melalui mongosh
, memantau prestasi secara profesional menggunakan mongostat
dan mongotop
, serta melaksanakan sandaran & pemulihan data selamat melalui mongodump
dan mongorestore
. Kini, anda boleh melaksanakan MongoDB dengan yakin dalam projek anda yang seterusnya.