Latihan Mongodb PART 1 : CRUD dan Operator

CRUD Mongodb

Intro

Bismillahirrahmanirahim di artikel kali ini saya akan berbagi tentang basic di dalam nosql mongodb yaitu membuat CRUD (Create, Read, Update, Delete), pertama pastikan teman-teman sudah menginstall database mongodb nya ya di local teman-teman cara install versi standalone bisa mengunjungi disitus ini https://docs.mongodb.com/manual/installation/

Di tulisan kali ini kita akan belajar dulu perintah-perintah di mongodb tanpa bahasa pemrograman, mengapa demikian menurut saya sebelum terjun real dengan menggunakan pemrograman alangkah baiknya teman-teman mencoba dulu hal-hal basic di database tersebut. 

Untuk mongodb sendiri support ke berbagai macam bahasa pemrograman seperti Pyhon, Ruby, PHP, Golang dan Nodejs. Dari beberapa bahasa pemrograman tersebut yang menurut pribadi paling enak yaitu menggunakan Nodejs mengapa ??? karena sangat mudah rule dan library yang mengsupport untuk integrasi mongodb dan nodejs, itu hanya pendapat pribadi saja ya silahkan teman-teman tentukan dan coba sendiri saja jika mongodb cocoknya dengan bahasa pemrograman apa hehehe.


Gui untuk mongodb

Walaupun saya pengguna linux akan tetapi dalam hal pengelolaan database lebih enak menggunakan GUI hehehe karena lebih mudah memantau nya ataupun komparasi data. Rekomendasi dari saya aplikasi untuk mengelola nosql mongodb adalah aplikasi nosqlbooster, teman-teman bisa mengunduh nya di situs https://nosqlbooster.com/downloads, kenapa memilih nosqlbooster karena ringan dan GUI nya walaupun classic enak untuk dipakai.


1. Create 

Setelah teman-teman sudah berhasil mengunduh dan menginstall aplikasi nosqlbooster nya buka aplikasi nya dan click menu connect di kiri atas aplikasi, klik create setelah muncul isikan seperti ini

Koneksi mongodb

Jika teman-teman ketika mengisntall mongodb menggunakan username dan password klick tab Authentication di bagian mode pilih Basic username/password di bagian authdb jika teman-teman tidak merubah nya ketikla menginstall biasanya diisi dengan nama admin sih

Konfigurasi mongodb dengan username dan password

Setelah semuanya siap klik test connection jika ok nanti akan ada pesan di bagian atas connect to host status ok, jika ok klik button save & connect. Setelah itu di sebelah kiri ada tab Connection Tree kilik kanan dan pilih create database atau bisa menggunakan shorcut keyboard Alt + N kita buat nama database kita dengan nama belajar-mongodb. Setelah itu kita buat collection/tabel nya dengan cara klik kanan di nama database yang kita buat tadi terus pilih Create Collection kita buat nama collection nya dengan nama kategori.

Setelah itu klik kanan lagi di collection kategori pilih Create/Update/Remove Documents -> Insert Documents nanti akan muncul tab editor baru dengan code insert seperti pada gambar dibawah ini lalu kita akan coba memasukan satu data ke collection atau table kita.

Create atau save data

Kita akan membuat satu documents dengan isian column nama_kategori string, dan status boolean running code nya dengan cara klik button run diatas atau melalui shortcut Ctrl + f5, jika sukses di bawah editor akan munul tab baru dan cek pesan nInserted : 1 disitu kita berhasil membuat documents 1 documents. Lanjut kita testing lagi bagaimana jika ingin memasukan nya secara array atau lebih dari satu data berikut perintah nya.

db.kategori.insert([
    {
        nama_kategori:"teknologi",
        status: true
    },{
        nama_kategori:"politik",
        status: false
    }
])

Coba lagi jalankan perintah nya dan cek pesan nya berhasil terinsert 2 documents atau tidak, Menarik bukan dengan hanya post json kita sudah berhasil membuat data atau documents tanpa harus mendefinisikan kolom nya terlebih dahulu, balik lagi ke pengenalan mongodb karena bentuknya documents jadi tiap documents bisa saja mempunyai kolom-kolom yang berbeda kita coba dengan membuat satu data lagi dengan tambahan kolom tahun sebagai berikut.

db.kategori.insert([
    {
        nama_kategori:"olahraga",
        tahun:2015,
        status: true
    }
])

Okay sekarang kita cek document-document yang sudah kita buat tadi dengan cara klik dua kali nama collection atau tabel kategori kita.

list data

Bisa dilihat document yang terakhir kita masukan mempunyai kolom tahun sedangkan document yang lain tidak mempunyai atribut tahun. Jika di dalam relational database ketika kita akan menambahkan kolom baru di tabel exisiting data-data lama juga akan ada kolom baru tersebut. Di mongo pun bisa seperti itu tapi rule nya agak berbeda nanti contohkan di bagian update. Oh iya sebagai catatan tambahan 

untuk membuat unique documents di mongodb itu ketika kita membuat documents sudah otomatis tergenerate id nya dengan nama column _id dengan value random string dan number dengan tipe data ObjectId()


2. Read

Lanjut kita akan membuat perintah untuk menampilkandata klik dua kali di collection/tabel kateori kita nanti akan muncul tab baru dan kita coba akan menampilkan semua data dengan perintah sebagai berikut, by default ketika klik dua kali akan muncul code yang sudah dibuat ditab nya namun kita edit menajdi seperti ini

db.kategori.find({})

Jalankan code nya dan nanti akan muncul list document-document kita, nah sekarang kita akan coba dengan menampilkan data yang hanya status nya true saja dan belajar menggunakan operator berikut code nya.

// fungsi ini hampir sama dengan where status = true
db.kategori.find({status:true})

Contoh menambahkan order dan limit di mongodb untuk order biasa disebut sort  bisa menggunakan string asc atau desc atau juga dengan number 1 = ASC, -1 = DESC  berikut contohnya.

// limit dan order
db.kategori.find({}).limit(3).sort({nama_kategori:-1})

Berikut adalah code dengan penggunaan operator disini saya mencontohkan tingga operator saja yang umum atau sering digunakan 

// menggunakan operator $ne = note equal hampir sama dengan where status != true
db.kategori.find({status: { $ne:  true}})

// mengunakan operator $in 
db.kategori.find({nama_kategori: { $in:  ['peristiwa','olahraga']}})

// menggunakan operator $or
db.kategori.find({ $or: [ { nama_kategori: 'peristiwa'},{status:{$ne : true}}] })

3. Update

Lanjut masuk ke pembahasan update documents di mongodb klik kanan lagi di collection kategori pilih Create/Update/Remove Documents -> Update Documents nanti akan muncul tab editor baru dengan code update yang sudah disediakan berikut penjelasan nya.

db.kategori.update(
    {}, // disini berguna untuk kondisi jika mengupdate documents berdasarkan id atau kondisi apa 
    {$set:{}},  // disini berguna untuk mengeset kolom apa aja yang akan di update
    { multi: false, upsert: false} // disini optional multi yaiut untuk mengaktifkan multi update upsert yaitu update insert
)

Kita akan mencoba mengubah data yang status false menggunakan kondisi berdasarkan _id berikut code nya.

db.kategori.update(
    {_id:ObjectId('5fba097f0d0de5447789fac9')},
    {$set:{status : true}}
)

Jika berhasil di tab editor bawah akan muncul pesan WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) code kita berhasil dijalankan dan berhasil di update datanya. Nah sekarang sesuai dengan penjelasan di bagian Create kita akan memasukan kolom tahun ke documents yang tidak mempunya kolom tahun dan set default untuk kolom tahun nya berikut codenya

db.kategori.update({tahun : {$exists: false}},
    {$set:{tahun : 0}},
    {multi: true, upsert:true}
)

pada bagian ini {tahun : {$exists: false} berguna untuk mengecke di dalamn collection kategori documents mana saja sih yang tidak mempunyai kolom tahun, sedangkan di bagian ini {multi: true, upsert:true} multi = berguna untuk mengubah semua data atau satu jika multi berarti set true jika tidak false, upsert = berguna untuk update atau insert kolom ke kolom yang dituju ture atau false nilainya.

Sebagai catatan jika ingin mengubah data berdasarkan _id harus menyertakan tipe data nya ObjectId contoh {_id:ObjectId('asdasd12312')} jika tidak menyertakan tipe nya mongodb tidak akan bisa membaca _id tersebut.


4. Delete

Lanjut di pembahasan terkahir kita akan membuat code fungsi untuk menghapus data klik kanan lagi di collection kategori pilih Create/Update/Remove Documents -> Remove Documents nanti akan muncul tab editor baru dengan code delete yang sudah disediakan berikut penjelasan nya.

db.kategori.remove(
    {}, //kondisi delete akan berdasarkan kolom dan value apa 
    {justOne: true} // optional perintah
)

Kita akan mencoba menghapus data yang status false menggunakan kondisi berdasarkan _id berikut code nya.

db.kategori.remove(
    {_id: ObjectId('5fba19840d0de5447789fad0')}
)

Jika berhasil di bagian tab editor bawah akan muncul pesan WriteResult({ "nRemoved" : 1 }). Selanjutnya kita akan coba menghapus semua data yaitu dengan cara  klik kanan lagi di collection kategori pilih Create/Update/Remove Documents -> Remove All Documents nanti akan muncul tab editor baru dengan code delete all yang sudah disediakan berikut penjelasan nya.

db.kategori.remove(
    {} // kondisi delete semua documents jika tidak pakai kondisi kosongkan saja
)

Jika berhasil makan akan muncul pesan counting documents yang sudah di hapus WriteResult({ "nRemoved" : 3 }).

Okay sejauh ini pembahasan kita sudah cukup tentang basic crud di mongodb lanjut nanti kita akan membuat perintah grouping, aggregate dan join di mongodbjika ada yang ditanyakan bisa tulis saja dikolom komentar semoga bermanfa'at bagi kita semua. Dokumentasi lengkapnya kunjungi aja situs ini

Posting Komentar

0 Komentar