Buku ini membahas mengenai administrasi MongoDB. Pertama menjelaskan pengertian MongoDB dan keunggulannya dibanding database relasional. Kemudian membahas cara instalasi MongoDB di Windows dan Linux serta penggunaan MongoDB shell. Terakhir membahas manajemen database seperti manajemen database, monitoring server, ekspor impor data, dan backup restore data.
4. Buku ini kupersembahkan kepada isteriku, Ela Juitasari, dan kedua anakku, M. Thariq
Akbar dan Zahra Zhafirah Fathinah.
Dan juga kedua orang tuaku di Ds. Sukasukur-Tasikmalaya, (Alm) mak Yoyom dan bapak
Didi.
4|Seri MongoDB: Administrasi MongoDB
5. Kata pengantar
Alhamdullilah, dengan rahmat Allah SWT akhirnya buku ini dapat diselesaikan, Buku
Seri MongoDB: Administrasi MongoDB. Selain itu, penulis berharap buku ini dapat
membantu dan memberikan motivasi para administrator atau pemula yang ingin
belajar tentang database MongoDB.
Penulis juga sebagai manusia biasa yang tidak luput dari kesalahan. Oleh karena itu,
saran dan kritik guna meningkatkan kualitas konten buku ini dari pembaca sangat
diperlukan. Semoga buku ini bermanfaat.
Berlin-Jerman, Oktober 2013
Agus Kurniawan
Fakultas Ilmu Komputer
Universitas Indonesia
5|Seri MongoDB: Administrasi MongoDB
6. Daftar Isi
Kata pengantar ............................................................................................................................. 5
Daftar Isi ........................................................................................................................................ 6
Mengenal MongoDB.................................................................................................................... 8
Apakah Itu MongoDB? .......................................................................................................... 10
Mengapa MongoDB? ............................................................................................................. 11
System Requirement .............................................................................................................. 12
MongoDB Server .................................................................................................................... 12
Instalasi MongoDB Pada Platform Windows .................................................................... 13
Instalasi MongoDB Pada Platform Linux Ubuntu ............................................................ 16
Sintak MongoDB Shell .............................................................................................................. 17
MongoDB Shell ....................................................................................................................... 18
Membuat Database Baru ....................................................................................................... 19
Membuat Dokumen Baru...................................................................................................... 20
Menampilkan Koleksi Dokumen ......................................................................................... 22
Menampilkan Data Pada Dokumen .................................................................................... 23
Memperbarui Data ................................................................................................................. 23
Menghapus Data .................................................................................................................... 24
Menghapus Dokumen ........................................................................................................... 24
Kondisional Operator ............................................................................................................ 24
Limit dan Sorting.................................................................................................................... 25
Operasi OR dan AND ............................................................................................................ 25
Regular Expression ................................................................................................................ 26
Manajemen MongoDB............................................................................................................... 27
Administrative Tool ............................................................................................................... 28
6|Seri MongoDB: Administrasi MongoDB
7. Manajemen Database ............................................................................................................. 29
Monitoring Server .................................................................................................................. 30
Export & Import Data ................................................................................................................ 33
Export Data ............................................................................................................................. 34
Import Data ............................................................................................................................. 35
Backup & Restore ....................................................................................................................... 37
Backup Data ............................................................................................................................ 38
Restore Data ............................................................................................................................ 39
Daftar Pustaka ............................................................................................................................ 41
Profile Penulis ............................................................................................................................. 42
7|Seri MongoDB: Administrasi MongoDB
9. Sebagian besar dari kita mungkin sudah tidak asing dengan database relational bahkan
beberapa universitas juga mengajarkan. Beberapa perusahan dan industri juga
memanfaatkan database relational ini untuk kepentingan aplikasinya. Database
relational sudah terbukti banyak dipakai dan keandalannya masih dapat diterima. Ada
banyak produk yang berbasis database relational antara lain
•
SQL Server
•
Oracle
•
MySQL
•
Postgre
•
dan banyak lagi
Database relational ini memanfaatkan SQL untuk mengaksesnya. Para programmer
sudah tidak asing melakukan query ataupun transaksi dengan menggunakan SQL.
Beberapa dari para programmer ini mungkin tidak menyukai SQL dan selanjutnya
memanfaatkan ORM (object relational mapping) yang menyederhanakan sintak SQL
menjadi objek sehingga para programmer tidak menggunakan sintak SQL dalam
mengakses databasenya.
Selain menggunakan pendekatan ORM, kita juga dapat mengganti paradigm SQL ini
secara totol dengan mengganti sistem database yang sering dikenal dengan aliran
NoSQL. Konsep umum pada sistem database berbasis NoSQL didasarkan pada
bagaimana cara menyimpan data dengan pendekatan seperti
•
Key-value
•
BigTable
•
Document store
•
Graph database
Sistem database berbasis NoSQL ini cukup cepat perkembangannya. Ditambah lagi
dengan banyaknya perusahan besar yang memakainya seperti Google, Amazon,
Twitter, dan Facebook. Kalau kita perhatikan secara implementasi NoSQL maka kita
akan memperoleh banyak sekali sistem database yang dapat dipilih contohnya
MongoDB, CouchDB, Cassandra, Berkeley DB dan sebagainya.
9|Seri MongoDB: Administrasi MongoDB
10. Pada bab ini penulis akan memaparkan apa dan bagaimana memanfaatkan database
MongoDB sebagai sistem database berbasis NoSQL.
Apakah Itu MongoDB?
MongoDB merupakan sistem database yang awalnya diperuntuknan untuk aplikasi
web dan infrastruktur internet. Strategi model data dengan tingkat throughput yang
tinggi dan kemampuan automatic failover membuat MongoDB menjadi pilihan
alternatif untuk data. Kemudahan skalabilitas yang fleksibel menjadikan fitur utama
dari database yang berbasis NoSQL ini. Sistem database MongoDB ini dapat dibaca
informasinya pada alamat http://www.mongodb.org .
Database MongoDB dikembangkan oleh 10gen yang merupakan perusahan yang
berkecimpung dalam bidang cloud dengan fokus software platform-as-a-service yang
terdiri dari aplikasi server dan database. Database MongoDB sendiri dikembangan
dengan bahasa C++ dan dikompilasi diplatform Mac, Windows dan paling banyak
pada Linux.
MongoDB didasarkan pada bagaimana cara menyimpan dan memperoleh data. Teknik
yang digunakan adalah BSON (binary JSON) yang iini merupakan serialisasi binaryencoded berbasis dokumen JSON. Setiap BSON akan mempunyai 0 atau lebih pasangan
key/value berformat binary yang disimpan sebagai satu entiti. Satu entiti ini dikenal
dengan dokumen. Berikut ini tipe dasar yang digunakan pada MongoDB yang
diserialisasikan dalam format little-endian:
public enum BsonType {
Double = 0x01,
String = 0x02,
Document = 0x03,
Array = 0x04,
Binary = 0x05,
Undefined = 0x06,
ObjectId = 0x07,
Boolean = 0x08,
DateTime = 0x09,
Null = 0x0a,
RegularExpression = 0x0b,
JavaScript = 0x0d,
Symbol = 0x0e,
JavaScriptWithScope = 0x0f,
Int32 = 0x10,
Timestamp = 0x11,
Int64 = 0x12,
MinKey = 0xff,
MaxKey = 0x7f
10 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
11. }
Sebagai ilustrasikan misalkan kita mempunyai data pasangan key/value sebagai
berikut
{"hello": "world"}
Maka format BSON akan menjadi seperti dibawah ini
x16x00x00x00x02hellox00
x06x00x00x00worldx00x00
Mengapa MongoDB?
Seperti telah dijelaskan diawal mengenai MongoDB dan selanjutnya ini akan menjadi
pilihan para pembaca untuk menyelesaikan beberapa permasalahan yang berhubungan
dengan database. Berdasarkan tujuan dari MongoDB dibuat, kita dapat melihat bahwa
MongoDB dirancang dengan mengkombinasikan konsep key-value dan relational
database. Pendekatan key-value ini akan menyederhanakan proses penyimpanan dan
aksesnya serta kemudahan dalam melakukan skalabilitas.
Pada beberapa kasus database MongoDB sangat cocok untuk aplikasi web untuk hal
yang berhubungan dengan analisa dan logging serta beberapa aplikasi yang
memerlukan cache. Seperti pada memcache yang menerapkan key-value sebagai
metode untuk cache, MongoDB juga melakukannya seperti itu.
MongoDB tidak mengenal join karena memang tidak berparadigma SQL melainkan
dengan pendekatan dokumen. Dokumen satu dengan dokumen lainnya dapat saling
berhubungan berdasarkan relasi dokumen nya. Solusi ini diharapkan dapat
mempercepat query data dari MongoDB.
Sistem database MongoDB juga dapat digunakan bebas tanpa harus mengeluarkan
biaya sama sekali. Selain itu, MongoDB juga membuka kode programnya atau dengan
kata lain berbasis open source.
Dukungan driver terhadap beberapa bahasa pemrograman juga menjadi menarik
untuk para pengembangan yang ingin memanfaatkan database MongoDB sebagai
databasenya. Dukungan ini akan menambah kreatifitas para pengembang.
11 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
12. System Requirement
Komputer merupakan alat yang terpenting untuk menjalankan MongoDB. Berikut ini
beberapa spesifikasi komputer yang dibutuhkan
Processor 1 GHz atau lebih tingi
OS yang didukung
Linux Ubuntu, Debian, dan generic Linux
Windows XP, Vista, 7, 8
Windows Server 2003, 2008
Mac
Memory minimal 1 GB. Sebaiknya memory diatas 2 GB untuk kelancaran dan
kenyaman waktu mengoperasikan MongoDB
Hardisk minimal yang kosong 2 GB
Spesifikasi komputer tidak diperuntuk untuk mesin server. Khusus untuk server harus
menggunakan spesifikasi komputer yang terbaik.
MongoDB Server
Database MongoDB mendukung banyak platform seperti Mac, Windows, Solaris, dan
Linux baik platform 32-bit maupuan 64-bit. Sistem database MongoDB ini dapat
diunduh melalui websitenya yaitu
http://www.mongodb.org/downloads
Unduh database MongoDB sesuai dengan platform yang dimiliki.
12 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
13. Gambar 1.1 Website MongoDB untuk unduh aplikasi server
MongoDB juga menyediakan source code dari aplikasi database server ini. Apabila ada
platform yang tidak disediakan instalasinya maka kita dapat memanfaatkan source
code ini untuk dilakukan proses kompilasi sendiri pada platform yang tidak di support.
Hal ini memungkinkan karena MongoDB dibangun menggunakan kode C++ yang
berjalan pada lintas platform.
Pada buku ini penulis hanya membagi pengalaman bagaimana instalasi MongoDB
pada platform Windows dan LinuxUbuntu.
Instalasi MongoDB Pada Platform Windows
Pada platform Windows, MongoDB server dapat berjalan pada berbagai platform OS
Windows meliputi
Windows XP
Windows Vista
Windows 7
Windows Server 2008
13 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
14. Windows Server 2008 R2
Windows 8
Untuk proses instalasinya, ekstrak file instalasi dari hasil mengunduh ke folder tertentu
misalkan c:mongo dan selanjutnya kita membuat folder untuk datanya misalkan
c:datadb . Kalau kita perhatikan hasil ekstraksi , kita akan menjumpai file-file ini
didalam folder (lihat gambar 1.2):
Mongod.exe merupakan database server
Mongo.exe merupakan administrative shell
Gambar 1.2 Hasil ekstrasi file MongoDB
Selanjutnya cara menjalankan database MongoDB servernya, kita cukup mengklik dua
kali file Mongod.exe. Selanjutnya kita dapat menggunakan konsole dan memanggil
shellnya yaitu mongo.exe. Selanjutnya kita dapat berteraksi dengan database MongoDB
seperti pada gambar 1.3.
14 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
15. Gambar 1.3. Interaksi shell MongoDB pada Windows
Kita dapat juga menjalankan MongoDB server sebagai Windows Service. Keuntungan
menggunakan Windows Service adalah aplikasi database server ini berjalan dibelakang
proses sehingga tidak perlu logon ke Windows untuk sekedar mengaktifkan servernya.
Ini sangat cocok untuk platform Windows Server.
MongoDB mempunyai sintak script untuk menjalankan sebagai Windows Service
dengan cara menjalankan script seperti dibawah ini.
mongod --install
mongod --service
mongod --remove
mongod --reinstall
Sebagai contoh ilustrasi dengan konfigurasi sebelumnya, kita jalankan konsole (CMD)
dengan RunAs Administrator dan kemudian ketik sintak dibawah ini
mongod --logpath c:mongologlog.log --logappend --dbpath c:datadb -directoryperdb --install
Setelah sukses, kita panggil bagian Services dari Administrative Tools seperti yang
terlihat pada gambar 1.4.
15 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
16. Gambar 1.4 MongoDB server yang berjalan sebagai service pada Windows
Instalasi MongoDB Pada Platform Linux Ubuntu
Sedangkan untuk instalasi MongoDB pada platform Linux, misalkan Ubuntu, mulamula kita install GPG key sebagai berikut
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Kemudian menambahkan repository pada /etc/apt/sources.list sebagai berikut
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
Kemudian lakukan update
sudo apt-get update
Terakhir, kita install mongodb
sudo apt-get install mongodb-10gen
Selanjutnya sistem akan mengunduh dan menginstalnya. Secara umum service sudah
jalan langsung, jika tidak panggil script ini pada konsole
mongod
Sedangkan untuk mengaktifkan MongoDB shell nya dapat digunakan sintak
mongo
16 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B
17. Bab 3
Sintak MongoDB Shell
17 | S e r i M o n g o D B : A d m i n i s t r a s i M o n g o D B