MongoDB adalah basis data NoSQL yang dirancang untuk menyimpan dan mengelola data dalam format dokumen JSON yang fleksibel. Ini cocok untuk aplikasi yang memerlukan skala besar, performa tinggi, dan schema yang dapat berubah-ubah. Berikut adalah panduan lengkap untuk mengelola basis data menggunakan MongoDB, dari instalasi hingga operasi dasar.
1. Instalasi MongoDB
1.1. Mengunduh dan Menginstal MongoDB
- Di Windows/MacOS/Linux:
- Kunjungi halaman unduhan MongoDB dan pilih versi yang sesuai dengan sistem operasi Anda.
- Ikuti petunjuk instalasi untuk platform Anda. Pastikan untuk menambahkan MongoDB ke PATH jika diperlukan.
1.2. Memulai MongoDB
- Di Windows: Jalankan
mongod
di Command Prompt atau PowerShell untuk memulai server MongoDB. - Di MacOS/Linux: Gunakan terminal dan jalankan
mongod
untuk memulai server MongoDB.
1.3. Mengakses MongoDB
- Buka terminal atau Command Prompt dan jalankan
mongo
untuk masuk ke shell MongoDB.
2. Struktur Data di MongoDB
2.1. Dokumen dan Koleksi
- Dokumen: Data di MongoDB disimpan dalam format JSON-like yang disebut BSON (Binary JSON). Dokumen adalah unit data dasar dalam MongoDB.
- Koleksi: Sekumpulan dokumen. Setiap koleksi berisi dokumen dengan struktur serupa.
Contoh dokumen JSON:
{
"name": "John Doe",
"email": "johndoe@example.com",
"age": 30
}
3. Operasi Dasar dengan MongoDB
3.1. Membuat dan Mengakses Database
- Membuat Database: Gunakan perintah
use
untuk membuat database baru atau beralih ke database yang ada.bashuse mydatabase
- Menampilkan Daftar Database:
bash
show dbs
3.2. Membuat dan Mengakses Koleksi
- Membuat Koleksi: Koleksi dibuat saat Anda menyisipkan dokumen pertama.
bash
db.mycollection.insertOne({ name: "Alice", age: 25 })
- Menampilkan Daftar Koleksi:
bash
show collections
3.3. Menyisipkan Dokumen
- Sisipkan Satu Dokumen:
bash
db.mycollection.insertOne({ name: "Bob", email: "bob@example.com", age: 40 })
- Sisipkan Banyak Dokumen:
bash
db.mycollection.insertMany([
{ name: "Charlie", email: "charlie@example.com", age: 35 },
{ name: "David", email: "david@example.com", age: 29 }
])
3.4. Mencari Dokumen
- Mencari Satu Dokumen:
bash
db.mycollection.findOne({ name: "Alice" })
- Mencari Banyak Dokumen:
bash
db.mycollection.find({ age: { $gt: 30 } })
3.5. Memperbarui Dokumen
- Memperbarui Satu Dokumen:
bash
db.mycollection.updateOne(
{ name: "Bob" },
{ $set: { email: "bob123@example.com" } }
)
- Memperbarui Banyak Dokumen:
bash
db.mycollection.updateMany(
{ age: { $lt: 30 } },
{ $set: { status: "young" } }
)
3.6. Menghapus Dokumen
- Menghapus Satu Dokumen:
bash
db.mycollection.deleteOne({ name: "Charlie" })
- Menghapus Banyak Dokumen:
bash
db.mycollection.deleteMany({ age: { $lt: 30 } })
4. Indeks dan Kinerja
4.1. Membuat Indeks
- Membuat Indeks pada Satu Kolom:
bash
db.mycollection.createIndex({ email: 1 })
- Membuat Indeks Komposit:
bash
db.mycollection.createIndex({ name: 1, age: -1 })
4.2. Menampilkan Indeks
- Menampilkan Indeks di Koleksi:
bash
db.mycollection.getIndexes()
4.3. Menghapus Indeks
- Menghapus Indeks Berdasarkan Nama:
bash
db.mycollection.dropIndex("index_name")
5. Pengelolaan Data dan Backup
5.1. Backup Data
- Menggunakan
mongodump
:bashmongodump --db mydatabase --out /path/to/backup
5.2. Restore Data
- Menggunakan
mongorestore
:bashmongorestore --db mydatabase /path/to/backup/mydatabase
6. Keamanan dan Pengaturan
6.1. Mengatur Autentikasi
- Menambahkan Pengguna ke Database:
bash
use admin
db.createUser({
user: "myUserAdmin",
pwd: "abc123",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
6.2. Mengaktifkan Autentikasi
- Mengedit File Konfigurasi MongoDB (
mongod.conf
):yamlsecurity:
authorization: "enabled"
7. Menggunakan MongoDB dengan Aplikasi
7.1. Koneksi dari Aplikasi Node.js
- Menggunakan Mongoose untuk Koneksi:
javascript
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });
const User = mongoose.model('User', new mongoose.Schema({ name: String, age: Number }));
const user = new User({ name: 'Eve', age: 28 });
user.save();
7.2. Koneksi dari Aplikasi Python
- Menggunakan PyMongo untuk Koneksi:
python
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
db = client['mydatabase'] collection = db['mycollection']collection.insert_one({'name': 'Frank', 'age': 32})
Kesimpulan
MongoDB adalah pilihan yang kuat untuk aplikasi yang memerlukan skema fleksibel dan skala besar. Dengan menggunakan MongoDB, Anda dapat dengan mudah menyimpan, mencari, memperbarui, dan menghapus data dalam format dokumen yang mudah dipahami. Memahami operasi dasar, manajemen indeks, pengaturan keamanan, dan integrasi dengan aplikasi adalah kunci untuk memanfaatkan MongoDB secara efektif. Seiring dengan pertumbuhan data dan kompleksitas aplikasi, MongoDB menyediakan berbagai alat dan teknik untuk memastikan kinerja dan keamanan yang optimal.