WHAT'S NEW?
Loading...

Tutorial MongoDB: Dasar MongoDB Shell - Part 5



Pada part ini kita akan mulai menggunakan MongoDB Shell untuk lebih mengenal MongoDB dalam penggunaannya, terlebih dalam pengoperasian fungsi query NoSQL database.

Untuk memulai menggunakan MongoDB Shell, pastikan terlebih dahulu service MongoDB sudah dijalankan. Untuk dapat mengakses server secara kustom, seperti hostname/IP server, port dan database, gunakan perintah berikut dari terminal:
mongo host_server:27017/myDB <== 27017 port default MongoDB
Contoh di atas diasumsikan kita sudah mempunyai database yang akan diakses, namun bila kita belum punya database maka gunakan perintah berikut:
mongo
> help <== untuk melihat kumpulan perintah shell
> show dbs <== menampilkan nama database
> use myDB <== gunakan database myDB atau buat db myDB
> exit <== keluar dari shell
Contoh perintah di atas adalah untuk kasus memulai akses database, bila nantinya kita sudah punya database yang akan dihandle maka saya pribadi lebih senang menggunakan cara berikut ini:
mongo --nodb
> conn = new Mongo("host_server:27017")
> db = conn.getDB("myDB")
Cukup sederhana dan tentunya lebih terlihat terstruktur, akan tetapi bukan berarti harus menggunakannya, mungkin ada cara lain yang lebih bagus yang bisa ditemukan di internet.

Seperti yang kita tahu sebelumnya kalau "mongo" sederhananya adalah JavaScript shell, dengan begitu kita bisa melihat JavaScript dokumentasi sebagai referensi. Untuk fungsi MongoDB secara spesific, sudah terdapat fungsi built-in yang dapat dilihat dengan perintah "help" seperti contoh sebelumnya di atas.

Untuk tingkatan level tersedia melalui parameter masing-masing, misalnya level database (berada dalam shell database yang digunakan) yaitu "db.help()" dan untuk level collection yaitu "db.nmcollection.help()"

Ada hal yang mungkin bisa dikatakan unik dalam MongoDB shell, misalkan kita ingin mengetahui seperti apa sebuah fungsi bekerja dalam mengolah data, dalam hal ini kita ingin mengetahui bagaimana fungsi update bekerja, maka cukup lakukan perintah berikut melalui shell:
> db.books.update
Dari hasil diatas maka akan tampak barisan kode JavaScript yang menghandle fungsi tersebut. Perlu diketahui, pada contoh tersebut kita tidak menggunakan tanda kurung "()" pada akhir nama fungsi, hal ini bertujuan untuk menguak isi dari fungsi tersebut, tetapi bisa kita menggunakan tanda kurung "()" pada nama fungsi tersebut "update()" maka berarti fungsi akan dieksekusi.

Part 1: Tutorial MongoDB: Pengenalan MongoDB - Part 1
Part 2: Tutorial MongoDB: Mengoperasikan MongoDB - Part 2
Part 3: Tutorial MongoDB: Tipe Data MongoDB - Part 3
Part 4: Tutorial MongoDB: Tipe Data MongoDB (Tambahan) - Part 4
Part 5: Tutorial MongoDB: Dasar MongoDB Shell - Part 5

Itulah sedikit dasar dalam menggunakan MongoDB shell, jika ada yang salah ataupun ada hal yang ingin ditanyakan silakan isi komentar dibawah, dan jangan lupa tetap kunjungi blog ini ataupun bookmark label tag mongodb untuk update part selanjutnya.

Tutorial MongoDB: Tipe Data MongoDB (Tambahan) - Part 4


Dalam part ini, saya akan membahas sedikit lebih lanjut mengenai beberapa tipe data yang sudah dijelaskan sebelumnya.

Dates

Di JavaScript, class Date digunakan untuk tipe data date MongoDB. Ketika membuat object Date baru, selalu panggil new Date(....), bukan hanya Date(....). Perlu diperhatikan dalam penggunaannya karena proses pemanggilan menggunakan kata kunci new dan tanpa new itu berbeda (dalam hal ini dikenal istilah konstruktor). Untuk penjelasan lebih lengkap mengenai class Date dalam JavaScript dan format yang bisa diterapkan untuk sebuah konstruktor bisa dilihat langsung melalui Ecmascript ataupun referensi yang lainnya.

Array

Untuk pengertian array sendiri masih sama seperti array pada umumnya. Sebuah array dapat menampung nilai lists, stacks, ataupun queues. Dalam MongoDB sendiri kedudukan array dalam sebuah document cukup membantu karena sebuah key dapat memiliki nilai yang beragam. 

Misalnya ada sebuah document yang mempunyai key "tes" dan mempunyai nilai array:
{"tes" : ["pi", 3.14]}
Dari contoh tersebut, nilai array dapat memuat atau berisikan tipe data yang berbeda sebagai nilanya (pada contoh diatas, terdapat sebuah string dan floating-point number).

Array dalam document bisa mengandung array lainnya atau biasa dikenal dengan istilah "nested arrays". Satu hal yang mungkin bisa dikatakan sebagai keunggulan tentang array dalam sebuah document yaitu MongoDB mengerti struktur mereka dan tahu bagaimana membaca hingga kedalam nilai nested arrays sekalipun. Jadi hal ini memungkinkan kita untuk membuat sebuah index menggunakan key terkait untuk meningkatkan query speed.

Embedded Documents

Selain menampung sebuah konten, document sendiri bisa menampung document lain dalam sebuah key, ini dikenal dengan sebutan embedded document. Embedded document bisa digunakan untuk mengorganisir data  menjadi lebih natural ketimbang hanya dengan struktur yang flat untuk pasangan key/value.

Untuk contohnya, jika kita punya document yang meresepresentasikan seseorang dan ingin menyimpan alamatnya, kita bisa mengumpulkan informasinya ke dalam embedded "alamat" document:
{
    "nama" : "John Doe",
    "alamat" : {
        "jalan" : "Jl. Beringin",
        "kota" : "Jogja",
        "provinsi" : "DIY"
    }
}
Contoh diatas merupakan contoh kecil dari embedded document, mungkin ada banyak contoh lainnya di internet yang lebih dalam strukturnya. Jadi sederhananya untuk penggunaan embedded document lebih kurang seperti contoh diatas.

_id dan ObjectId

Setiap document yang tersimpan di MongoDB harus memiliki "_id" key. Pada part 2 kita sudah melihat proses post data ke dalam document yang mana key "_id" otomatis muncul dan memiliki nilainya sendiri. Nilai key "_id" bisa dengan berbagai tipe data, tetapi secara default adalah tipe data ObjectId. Dalam sebuah collection, setiap document harus memiliki nilai yang unik untuk "_id", yang memastikan bahwa setiap document dalam sebuah collection dapat diidentifikasi secara unik.

ObjectId

ObjectId adalah tipe default untuk "_id" dan merupakan sebuah Class yang di desain untuk menjadi ringan (lightweight). Desain ini menghasilkan kemudahan saat proses generate terhadap mesin yang berbeda. MongoDB mempunyai alasan utama kenapa mereka menggunakan ObjectId daripada menggunakan bentuk tradisional seperti autoincrement primary key adalah "karena sulit dan memakan waktu untuk sinkronisasi autoincrement primary key antar multiple server". Karena MongoDB didesain untuk menjadi database terdistribusi, hal tersebut menjadi penting untuk dapat menghasilkan identifikasi unik dalam sharded environment (multiple server).

Lalu muncul pertanyaan kenapa meng-insert document baru yang tidak ada memuat "_id" key secara otomatis tersimpan sendiri dalam document itu ? 
Jawabannya adalah terletak pada sisi client. MongoDB meng-handle hal tersebut melalui driver yang ada pada client, dan juga nilai ObjectId yang dihasilkan merupakan 12 bytes yang merupakan generate langsung dari mesin. Untuk lebih jelasnya bisa langsung mengunjungi official site MongoDB ataupun referensi lainnya.

Itulah sedikit tambahan penjelasan khusus terhadap tipe data diatas, jika ada yang salah ataupun ada pertanyaan mohon kiranya memberikan komentar pada kolom dibawah.

Part 1: Tutorial MongoDB: Pengenalan MongoDB - Part 1
Part 2: Tutorial MongoDB: Mengoperasikan MongoDB - Part 2
Part 3: Tutorial MongoDB: Tipe Data MongoDB - Part 3
Part 4: Tutorial MongoDB: Tipe Data MongoDB (Tambahan) - Part 4
Part 5: Tutorial MongoDB: Dasar MongoDB Shell - Part 5