lifelong learner — urip iku urup, currently working on accenture.

Mongodb – perintah dasar part 2/5

1
Degananda.com -

Selamat datang pada ulasan mengenai mongodb, pada ulasan kedua ini mengenai mongodb akan dititik beratkan pada manipulasi dokumen dari suatu collections. Manipulasi dokumen yang meliputi :

  1. Pembuatan dokumen (Create)
  2. Mengubah dokumen (Update)
  3. Menghapus dokumen (Delete)
  4. Membaca dokumen (Read)

selain itu, sebenarnya mongoDB juga support terhadap query. Layaknya rdbms mongodb juga memiliki kemampuan seperti rdbms dalam hal query. Namun , mekanisme query antara mongodb dan rdbms berbeda. Singkatnya, query pada mongodb lebih simple jika dibandingkan dengan query yang dapat kita lakukan pada rdbms (relamtional database management system) seperti mysql, postgresql, microsoft sql server dan lain-lain. Pembahasan mengenai query ini akan dibahas pada part ke tiga.

Perbandingan mongodb dan firebase

jika anda pernah menggunakan firebase maka saya berasumsi anda akan memiliki rasa frustasi seperti saya. Memang antara firebase dan mongodb merupakan jenis database yang sama yakni NoSQL. Tetapi, firebase memiliki sistem query yang sangat SEDERHANA. Misalnya pada query “where” firebase hanya mensupport satu buah parameter dan yang lebih parahnya firebase tidak mengenal adannya embedded document atau join seperti yang kita kenal pada rdbms. Inilah sedikit gambaran mengapa mongodb sangat baik dalam hal querying pada document namun bukan berarti firebase jelek tetapi keduannya memiliki keunggulan dan kelemahan masing-masing. Ulasan lebih lengkap mengenai perbandingan mongodb dan firebase akan kami bahas di kesempatan berikutnya (ini hanyalah foreshadowing).

1. Membuat document

1.1 Single insert

untuk membuat dokumen pada sebuah collection perintah yang digunakan dibawah ini (anda harus berada dalam suatu database untuk dapat membuat collection)

db.collection.insert(document)

parameter document dapat anda isi dengan menggunakan object ataupun json. Contohnya dari dokumen dengan menggunakan object adalah

db.note.insert({
    judul_note : "matematika hari ini",
    isi_note : "belajar mengenai aljabar linear",
    tanggal_note : new Date(),
    materi : ["matrix", "persamaan linear", "eliminasi gaus"]
})

Anda juga dapat menuliskannya seperti format JSON. Untuk saat ini abaikan funsgi new date yang ada pada perintah diatas karena hal tersebut akan dibahas nanti. pada intinnya new date akan mereturn nilai date sekarang sesuai dengan time mongodb yang berupa string.

db.note.insert({
    "judul_note" : "matematika hari ini",
    "isi_note" : "belajar mengenai aljabar linear",
    "tanggal_note" : new Date(),
    "materi" : ["matrix", "persamaan linear", "eliminasi gaus"]
})

keduannya dapat diterima oleh mongodb.

hal yang perlu difahami pada saat membuat dokumen ini bahwa setiap dokumen yang dibuat secara otomatis akan berikan ObjectId atau primary key oleh mongodb sehingga kita perlu melakukan konfigurasi untuk field primary key dengan menggunakan auto increment ataupun surrogate key layaknya pada RDBMS.

1.2 Multiple Insert

Mongodb juga support terhadap multiple insert, jika kita memilki data/dokumen yang cukup banyak dan ingin memasukannya pada collection maka penggunaan multiple insert adalah keputusan yang tepat. Multiple insert dilakuakn sama halnya dengan single insert hanya saja kita akan menggunakan array pada dokumen untuk memasukan beberapa item(multiple document item). Berikut adalah perintah yang digunakan untuk melakukan multiple insert.

db.note.insert([
    {
        judul_note : "kimia hari ini",
        isi_note : "tabel periodik",
        tanggal_note : new Date(),
        materi : ["golongan B", "golongan A", "H20"]
    },
    {
        judul_note : "biologi hari ini",
        isi_note : "belajar mengenai pewarisan",
        tanggal_note : new Date(),
        materi : ["inheritances", "gen xyz", "xy"]
    }
]);

perintah seperti ini akan dieksekusi secara “bulk” ini adalah hasil yang ditampilkan pada consol atau terminal saat mengeksekusi perintah diatas.

2. Menampilkan isi collections.

untuk menampilkan isi dari collection dapat kita lakukan dengan perintah dibawah ini

db.collection.find()

ketika dieksekusi pada console atau terminal maka akan menghasilkan hasil berikut ini

hasilnya sangat berantakan dokumen yang berada pada collection “note” saat ditampilkan pada console/terminal. Untuk membuat hasil penampilan yang indah / dapat dilihat oleh manusia maka perlu kita tambahkan perintah .pretty() sehingga untuk menampilkan dokumen secara indah maka perintah yang digunakan adalah

db.collection.find().pretty()

maka hasilnya adalah seperti berikut ini

3. Mengupdate dokumen

perintah yang digunakan untuk mengupdate dokumen pada collection adalah

db.collection_name.update(selector, dokumen_baru)

nilai selector adalah object yang berisi field yang menjadi kunci untuk melakukan update. Contohnya adalah kita akan mengupdate note dengan judul “biologi hari ini” maka kunci yang akan kita gunakan adalah “_id” meskipun kita juga dapat menggunakan kunci “judul_note” tapi dengan menggunakan “_id” lebih standar dan hemat memory (layaknya pada rdbms).

db.note.update(
    {"_id" : ObjectId('594a36495aab2e6e7d7cb102')},
    {
        $set : {
            "judul_note" : "kimia hari ini updated"
        }
    }    
)

dan ketika kita melihat collection dengan menggunakan find().pretty() maka dokumen kimia telah terupdate. Bagian yang terupdate hanyalah judul_note(menjadi “kimia hari ini updated“) sesuai dengan isi dari $set yang kita definisikan diatas selain field “judul_note” tidak dilakukan perubahan.

untuk mengupdate keseluruhan field kita tidak lagi menggunakan update() namun dapat menggunakan save() yang memiliki format sama seperti update().

4. Menghapus dokumen

perintah yang digunakan untuk menghapus dokumen tertentu adalah

db.collections.remove(selector).

nilai selector adalah object yang berisi field yang menjadi kunci untuk melakukan delete. Untuk melakukan penghapusan/delete seluruh dokumen perintah yang digunakan adalah

db.collections.remove()

contoh untuk menghapus dokumen tertentu yaitu kita akan melakuka penghapusan terhadap note kimia dengan menggunakan selector “_id”

db.note.remove({"_id" : ObjectId('594a36495aab2e6e7d7cb102')})

saat kita melakukan find().pretty() untuk melihat daftar dokumen pada collection “note”  maka dokumen yang berjudul kimia telah terhapus dari database