Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Server Khusus Server Virtual

Panduan Lengkap MongoDB: Instalasi, Fitur & Praktik Terbaik di VPS

MongoDB adalah salah satu database NoSQL paling powerful dan banyak diadopsi di dunia — dan ada alasan bagusnya. Arsitektur yang fleksibel dan berbasis dokumen membuatnya menjadi pilihan utama bagi developer yang membangun aplikasi modern yang intensif data dan perlu scale cepat. Baik Anda menjalankan startup MVP atau mengelola infrastruktur tingkat enterprise, MongoDB yang dipasangkan dengan lingkungan hosting berkinerja tinggi memberikan kecepatan, fleksibilitas, dan keandalan yang dibutuhkan aplikasi Anda.

Dalam panduan komprehensif ini, Anda akan mempelajari apa itu MongoDB, mengapa menonjol dari database relasional tradisional, cara menginstalnya di Ubuntu, dan cara melakukan operasi penting menggunakan MongoDB shell.

Apa Itu MongoDB dan Mengapa Anda Harus Menggunakannya?

MongoDB adalah database NoSQL open-source yang berorientasi pada dokumen dan menyimpan data dalam dokumen fleksibel mirip JSON yang disebut BSON (Binary JSON). Tidak seperti database relasional tradisional yang mengandalkan struktur tabel-baris-kolom yang kaku, MongoDB memungkinkan setiap dokumen dalam koleksi memiliki struktur uniknya sendiri. Ini membuatnya sangat cocok untuk aplikasi dengan model data yang berkembang atau tidak dapat diprediksi.

Keuntungan Utama MongoDB Dibandingkan Database SQL Tradisional

FiturMongoDB (NoSQL)SQL Tradisional
Model DataDokumen fleksibel (BSON)Skema tetap (tabel/baris)
SkalabilitasHorizontal (sharding)Terutama vertikal
Perubahan SkemaTanpa skema, dinamisMemerlukan migrasi
Bahasa QueryMQL kaya + agregasiSQL
Terbaik UntukData dinamis, tidak terstrukturData terstruktur, relasional
Performa pada Skala BesarSangat baik dengan shardingDapat menurun tanpa penyetelan

MongoDB ideal untuk berbagai kasus penggunaan termasuk analitik real-time, sistem manajemen konten, platform e-commerce, penerimaan data IoT, backend mobile, dan aplikasi apa pun di mana struktur data kemungkinan akan berubah seiring waktu.

Mengapa Hosting MongoDB di VPS?

Hosting MongoDB di server virtual pribadi yang didedikasikan memberikan tingkat kontrol, performa, dan keamanan yang tidak dapat disediakan oleh lingkungan bersama. Dengan paket VPS Hosting dari AlexHost, Anda mendapatkan:

  • Akses root penuh untuk mengonfigurasi MongoDB sesuai kebutuhan aplikasi Anda
  • Sumber daya RAM dan CPU yang didedikasikan untuk menangani beban kerja baca/tulis yang menuntut
  • Lingkungan terisolasi yang menghilangkan masalah “tetangga bising” yang umum terjadi di hosting bersama
  • Penskalaan vertikal dan horizontal yang mulus seiring pertumbuhan data Anda
  • Aturan firewall dan jaringan khusus untuk mengamankan akses database

Untuk aplikasi dengan persyaratan throughput yang sangat tinggi, Dedicated Servers AlexHost menawarkan performa bare-metal dengan isolasi hardware penuh — standar emas untuk deployment MongoDB produksi.

Bagian 1: Memahami Arsitektur Inti MongoDB

Sebelum masuk ke instalasi, penting untuk memahami bagaimana MongoDB mengorganisir dan mengelola data.

Documents

Unit data fundamental dalam MongoDB adalah document — objek seperti JSON yang dapat berisi field bersarang, array, dan tipe data campuran. Sebagai contoh:

{
  "_id": ObjectId("64b1f2c3e4b0a1d2e3f4a5b6"),
  "name": "Alice",
  "age": 30,
  "email": "alice@example.com",
  "address": {
    "city": "New York",
    "zip": "10001"
  },
  "tags": ["developer", "mongodb", "nodejs"]
}

Collections

Documents dikelompokkan ke dalam collections, yang analog dengan tabel dalam database SQL. Namun, tidak seperti tabel SQL, collections tidak memberlakukan skema tetap — documents dalam collection yang sama dapat memiliki field yang sama sekali berbeda.

Databases

Server MongoDB dapat menampung beberapa databases, masing-masing berisi set collections-nya sendiri. Ini memudahkan untuk mengisolasi data untuk aplikasi atau lingkungan berbeda (misalnya, development, staging, production) pada satu instance server.

Bagian 2: Fitur Utama MongoDB

2.1 Penyimpanan Berorientasi Dokumen

Model dokumen MongoDB adalah salah satu fiturnya yang paling powerful. Karena setiap dokumen dapat memiliki struktur yang berbeda, developer dapat mengembangkan skema database secara organik seiring perubahan kebutuhan aplikasi — tanpa menjalankan migrasi ALTER TABLE yang kompleks atau mengalami downtime.

Fleksibilitas ini sangat berharga dalam lingkungan pengembangan agile di mana persyaratan berubah sering, atau dalam aplikasi yang mengagregasi data dari berbagai sumber heterogen.

2.2 Skalabilitas Horizontal dengan Sharding

Salah satu kemampuan yang mendefinisikan MongoDB adalah dukungan nativenya untuk penskalaan horizontal melalui sharding. Sharding mendistribusikan data di beberapa server (disebut shards), memungkinkan MongoDB menangani dataset dan tingkat throughput yang akan membanjiri satu mesin.

Setiap shard menyimpan subset dari total data, dan router mongos mengarahkan query ke shard yang sesuai berdasarkan shard key yang dapat dikonfigurasi. Arsitektur ini memungkinkan skalabilitas hampir linear seiring pertumbuhan volume data dan beban query Anda.

Untuk lingkungan produksi dengan traffic tinggi, hosting MongoDB di Dedicated Servers AlexHost memastikan bahwa setiap shard memiliki akses ke sumber daya hardware yang terisolasi dan berkinerja tinggi.

2.3 Ketersediaan Tinggi dengan Replica Sets

MongoDB menyediakan fault tolerance built-in melalui replica sets — grup instance MongoDB yang mempertahankan salinan identik dari data yang sama. Replica set terdiri dari:

  • Satu primary node yang menerima semua operasi write
  • Satu atau lebih secondary nodes yang mereplikasi data dari primary
  • Arbiter opsional yang berpartisipasi dalam pemilihan tanpa menyimpan data

Jika primary node gagal, replica set secara otomatis memilih primary baru dari secondary yang tersedia, meminimalkan downtime dan memastikan durabilitas data.

2.4 Query Language Powerful dan Aggregation Framework

MongoDB Query Language (MQL) MongoDB mendukung set operasi yang kaya termasuk:

  • Penyaringan tingkat field dengan operator perbandingan, logika, dan elemen
  • Proyeksi untuk mengembalikan hanya field tertentu
  • Pengurutan dan paginasi dengan sort(), limit(), dan skip()
  • Pencarian teks dengan full-text indexes
  • Query geospatial untuk aplikasi berbasis lokasi

Aggregation Framework menyediakan pendekatan berbasis pipeline untuk transformasi dan analisis data, mendukung operasi seperti $match, $group, $sort, $project, $lookup (joins), $unwind, dan banyak lagi — menawarkan fungsionalitas yang sebanding dengan operasi SQL GROUP BY dan JOIN yang kompleks.

2.5 Indexing Fleksibel

MongoDB mendukung berbagai tipe index untuk mengoptimalkan performa query:

  • Single-field indexes untuk query sederhana
  • Compound indexes untuk query multi-field
  • Multikey indexes untuk field array
  • Text indexes untuk pencarian full-text
  • Geospatial indexes untuk query lokasi
  • TTL indexes untuk kedaluwarsa dokumen otomatis (berguna untuk data session atau logs)

Bagian 3: Menginstal MongoDB di Ubuntu (Langkah demi Langkah)

Bagian ini memandu Anda melalui instalasi MongoDB lengkap di Ubuntu 20.04 LTS (Focal Fossa). Langkah-langkah ini dioptimalkan untuk lingkungan AlexHost VPS dengan akses root atau sudo.

Prasyarat

  • Server Ubuntu 20.04 LTS
  • Akun pengguna dengan sudo privileges
  • Keakraban dasar dengan baris perintah Linux

Jika Anda belum memiliki server, Anda dapat membuat VPS Ubuntu yang sepenuhnya dikonfigurasi dalam hitungan menit dengan AlexHost VPS Hosting.

Langkah 1: Impor Kunci Publik GPG MongoDB

Paket MongoDB ditandatangani dengan kunci GPG untuk memverifikasi keasliannya. Impor kunci dengan perintah berikut:

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

Anda harus melihat OK sebagai output, mengkonfirmasi bahwa kunci berhasil diimpor.

Langkah 2: Tambahkan Repositori MongoDB

Buat file daftar untuk menambahkan repositori MongoDB resmi ke sumber paket sistem Anda:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

> Catatan: Perintah ini menambahkan repositori MongoDB 6.0. Sesuaikan nomor versi jika Anda memerlukan rilis yang berbeda.

Langkah 3: Perbarui Database Paket

Segarkan indeks paket lokal Anda untuk menyertakan repositori MongoDB yang baru ditambahkan:

sudo apt update

Langkah 4: Instal MongoDB

Instal versi stabil terbaru MongoDB dengan semua komponen yang diperlukan:

sudo apt install -y mongodb-org

Ini menginstal paket-paket berikut:

  • mongod — daemon database MongoDB
  • mongos — router sharding MongoDB
  • mongosh — shell MongoDB (pengganti modern untuk shell mongo yang sudah usang)
  • Alat dan perpustakaan MongoDB

Langkah 5: Mulai dan Aktifkan Layanan MongoDB

Mulai layanan MongoDB segera:

sudo systemctl start mongod

Aktifkan MongoDB untuk memulai secara otomatis saat boot sistem:

sudo systemctl enable mongod

Verifikasi bahwa MongoDB berjalan dengan benar:

sudo systemctl status mongod

Anda harus melihat output yang menunjukkan bahwa layanan adalah active (running). Jika MongoDB berhasil dimulai, Anda juga akan melihat baris yang mengkonfirmasi bahwa layanan mendengarkan di port 27017.

Langkah 6: Amankan Instalasi MongoDB Anda (Direkomendasikan)

Sebelum menggunakan MongoDB di lingkungan produksi atau yang menghadap internet, sangat penting untuk mengaktifkan autentikasi. Secara default, MongoDB tidak memerlukan nama pengguna atau kata sandi.

Buat pengguna administratif:

mongosh

Di dalam shell MongoDB:

use admin

db.createUser({
  user: "adminUser",
  pwd: "YourStrongPasswordHere",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
})

Aktifkan autentikasi dengan mengedit file konfigurasi MongoDB:

sudo nano /etc/mongod.conf

Temukan bagian security dan tambahkan:

security:
  authorization: enabled

Mulai ulang MongoDB untuk menerapkan perubahan:

sudo systemctl restart mongod

Mulai saat ini, semua koneksi ke MongoDB akan memerlukan kredensial yang valid.

Bagian 4: Menggunakan MongoDB — Perintah dan Operasi Penting

Dengan MongoDB terinstal dan aman, mari kita jelajahi operasi paling penting yang akan Anda gunakan setiap hari.

Langkah 1: Akses MongoDB Shell

Terhubung ke instans MongoDB Anda menggunakan shell modern mongosh:

mongosh

Jika autentikasi diaktifkan, terhubung dengan kredensial:

mongosh -u adminUser -p YourStrongPasswordHere --authenticationDatabase admin

Langkah 2: Operasi Database

Daftar semua database:

show dbs

Buat atau beralih ke database:

use mydatabase

> MongoDB membuat database secara otomatis saat Anda pertama kali menyisipkan data ke dalamnya.

Periksa database yang saat ini dipilih:

db

Hapus database:

db.dropDatabase()

Langkah 3: Operasi Koleksi

Buat koleksi secara eksplisit:

db.createCollection("users")

Daftar semua koleksi dalam database saat ini:

show collections

Hapus koleksi:

db.users.drop()

Langkah 4: Operasi CRUD Dokumen

Sisipkan Dokumen

Sisipkan satu dokumen:

db.users.insertOne({
  name: "Alice",
  age: 30,
  email: "alice@example.com",
  role: "developer"
})

Sisipkan beberapa dokumen sekaligus:

db.users.insertMany([
  { name: "Bob", age: 25, email: "bob@example.com", role: "designer" },
  { name: "Carol", age: 35, email: "carol@example.com", role: "manager" },
  { name: "Dave", age: 28, email: "dave@example.com", role: "developer" }
])

Baca Dokumen

Temukan semua dokumen dalam koleksi:

db.users.find()

Temukan dokumen dengan kondisi spesifik:

db.users.find({ role: "developer" })

Temukan dokumen dengan beberapa kondisi:

db.users.find({ role: "developer", age: { $gte: 28 } })

Kembalikan hanya bidang tertentu (proyeksi):

db.users.find({ role: "developer" }, { name: 1, email: 1, _id: 0 })

Temukan satu dokumen:

db.users.findOne({ name: "Alice" })

Urutkan hasil:

db.users.find().sort({ age: 1 })   // Ascending
db.users.find().sort({ age: -1 })  // Descending

Batasi dan paginate hasil:

db.users.find().limit(10).skip(20)  // Page 3 with 10 results per page

Perbarui Dokumen

Perbarui satu dokumen:

db.users.updateOne(
  { name: "Alice" },
  { $set: { age: 31, role: "senior developer" } }
)

Perbarui beberapa dokumen:

db.users.updateMany(
  { role: "developer" },
  { $set: { department: "Engineering" } }
)

Tingkatkan bidang numerik:

db.users.updateOne(
  { name: "Bob" },
  { $inc: { age: 1 } }
)

Hapus Dokumen

Hapus satu dokumen:

db.users.deleteOne({ name: "Dave" })

Hapus beberapa dokumen yang cocok dengan kondisi:

db.users.deleteMany({ role: "designer" })

Langkah 5: Pengindeksan untuk Kinerja

Membuat indeks pada bidang yang sering dikueri secara dramatis meningkatkan kinerja kueri.

Buat indeks bidang tunggal:

db.users.createIndex({ email: 1 })

Buat indeks gabungan:

db.users.createIndex({ role: 1, age: -1 })

Buat indeks unik:

db.users.createIndex({ email: 1 }, { unique: true })

Daftar semua indeks pada koleksi:

db.users.getIndexes()

Langkah 6: Pipeline Agregasi

Kerangka agregasi memungkinkan Anda melakukan analisis data kompleks langsung dalam MongoDB.

Contoh: Hitung pengguna berdasarkan peran dan urutkan berdasarkan jumlah:

db.users.aggregate([
  { $group: { _id: "$role", count: { $sum: 1 } } },
  { $sort: { count: -1 } }
])

Contoh: Filter, kelompokkan, dan hitung usia rata-rata berdasarkan peran:

db.users.aggregate([
  { $match: { department: "Engineering" } },
  { $group: { _id: "$role", avgAge: { $avg: "$age" }, total: { $sum: 1 } } },
  { $sort: { avgAge: 1 } }
])

Bagian 5: Konfigurasi MongoDB dan Penyetelan Performa

Mengonfigurasi mongod.conf

File konfigurasi utama MongoDB terletak di /etc/mongod.conf. Pengaturan kunci untuk ditinjau dan dioptimalkan:

# Network settings
net:
  port: 27017
  bindIp: 127.0.0.1  # Restrict to localhost for security; use server IP for remote access

# Storage settings
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2  # Set to ~50% of available RAM

# Logging
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Security
security:
  authorization: enabled

# Replication (for replica sets)
replication:
  replSetName: "rs0"

Praktik Terbaik Performa

  1. Alokasikan RAM yang cukup — Mesin penyimpanan WiredTiger MongoDB menggunakan cache dalam memori. Atur cacheSizeGB ke sekitar 50% dari RAM sistem yang tersedia.
  2. Gunakan indeks yang sesuai — Analisis kueri lambat dengan db.collection.explain("executionStats") dan buat indeks sesuai kebutuhan.
  3. Pantau dengan MongoDB Atlas atau mongostat — Gunakan alat baris perintah mongostat dan mongotop untuk memantau performa secara real-time.
  4. Aktifkan journaling — Journaling diaktifkan secara default dan menyediakan pemulihan kerusakan; jangan nonaktifkan di production.
  5. Gunakan connection pooling — Konfigurasikan driver MongoDB aplikasi Anda untuk menggunakan connection pooling guna mengurangi overhead koneksi.
  6. Kompak koleksi secara teratur — Gunakan db.runCommand({ compact: "collectionName" }) untuk membebaskan ruang disk setelah penghapusan besar-besaran.

Bagian 6: Backup dan Restore MongoDB

Backup reguler sangat penting untuk database produksi apa pun. MongoDB menyediakan alat bawaan untuk tujuan ini.

Buat Backup dengan mongodump

mongodump --uri="mongodb://adminUser:password@localhost:27017" --out=/backup/mongodb/$(date +%Y%m%d)

Restore dari Backup dengan mongorestore

mongorestore --uri="mongodb://adminUser:password@localhost:27017" /backup/mongodb/20240115/

Otomatisasi Backup dengan Cron

Tambahkan cron job untuk menjalankan backup harian secara otomatis:

sudo crontab -e

Tambahkan baris berikut untuk menjalankan backup setiap hari pada pukul 2:00 AM:

0 2 * * * mongodump --uri="mongodb://adminUser:password@localhost:27017" --out=/backup/mongodb/$(date +%Y%m%d) >> /var/log/mongodb-backup.log 2>&1

Memilih Paket AlexHost yang Tepat untuk MongoDB

Paket hosting yang tepat tergantung pada skala aplikasi, traffic, dan kebutuhan data Anda:

Use CasePaket yang DirekomendasikanAlasan
Development / TestingVPS HostingHemat biaya, kontrol penuh, setup mudah
Produksi Kecil hingga MenengahVPS HostingSumber daya scalable, penyimpanan SSD, akses root
Produksi Traffic TinggiDedicated ServersPerforma bare-metal, tanpa berbagi sumber daya
ML/AI dengan MongoDBGPU HostingAkselerasi GPU untuk workload pemrosesan data
Web App + MongoDBVPS dengan cPanelAntarmuka manajemen mudah bersama database Anda

Untuk aplikasi yang juga memerlukan frontend web, notifikasi email, atau koneksi yang aman SSL, AlexHost menyediakan SSL Certificates dan Email Hosting untuk melengkapi stack infrastruktur Anda.

Pertanyaan yang Sering Diajukan

T: Apakah MongoDB gratis digunakan?

Ya. MongoDB Community Edition gratis dan bersumber terbuka di bawah Server Side Public License (SSPL). MongoDB Enterprise dan MongoDB Atlas (cloud) menawarkan fitur tambahan dengan basis berbayar.

T: Port apa yang digunakan MongoDB secara default?

MongoDB mendengarkan pada port 27017 secara default. Anda dapat mengubah ini di /etc/mongod.conf.

T: Bisakah saya menjalankan MongoDB pada paket shared hosting?

MongoDB memerlukan akses root atau administratif untuk menginstal dan mengonfigurasi dengan benar, yang tidak tersedia pada shared hosting standar. VPS atau dedicated server diperlukan. Shared Web Hosting AlexHost lebih cocok untuk aplikasi PHP/MySQL, sementara deployment MongoDB harus menggunakan VPS atau dedicated server.

T: Bagaimana cara saya terhubung ke MongoDB dari aplikasi jarak jauh?

Perbarui bindIp di /etc/mongod.conf untuk menyertakan alamat IP server Anda, konfigurasi firewall Anda untuk mengizinkan port 27017 hanya dari IP terpercaya, dan gunakan string koneksi dalam format: mongodb://username:password@your-server-ip:27017/dbname.

T: Apa perbedaan antara MongoDB dan MySQL?

MySQL adalah database relasional yang menggunakan tabel terstruktur dan SQL. MongoDB adalah database dokumen NoSQL yang menyimpan dokumen seperti JSON yang fleksibel. MongoDB unggul dalam menangani data yang tidak terstruktur atau semi-terstruktur dan penskalaan horizontal, sementara MySQL lebih cocok untuk aplikasi dengan data relasional kompleks dan persyaratan kepatuhan ACID yang ketat.

Kesimpulan

MongoDB adalah teknologi database transformatif yang memberdayakan pengembang untuk membangun aplikasi modern yang scalable tanpa batasan skema relasional yang kaku. Model berorientasi dokumen, penskalaan horizontal native melalui sharding, ketersediaan tinggi built-in melalui replica sets, dan framework aggregation yang powerful menjadikannya salah satu database paling serbaguna yang tersedia saat ini.

Dengan hosting MongoDB di paket VPS Hosting AlexHost, Anda mendapatkan kontrol penuh, resources dedicated, dan infrastruktur yang andal yang diperlukan untuk menjalankan MongoDB secara efektif — baik Anda membuat prototipe aplikasi pertama atau mengelola sistem produksi dengan traffic tinggi.

Ikuti langkah-langkah instalasi dan konfigurasi dalam panduan ini untuk membuat instance MongoDB Anda berjalan, implementasikan langkah-langkah keamanan yang tepat sejak awal, dan manfaatkan indexing dan aggregation pipeline untuk membangun aplikasi yang performan dan data-driven.

Memiliki pertanyaan tentang setup MongoDB Anda atau membutuhkan bantuan memilih paket hosting yang tepat? Tim support expert AlexHost tersedia 24/7 untuk membantu Anda di setiap langkah.