WHAT'S NEW?
Loading...

Tutorial MongoDB: Operasi CRUD - Part 6

Tutorial MongoDB: Operasi CRUD - Part 6

Create, read, update dan delete (CRUD) dasar interaksi yang selalu dilakukan saat menggunakan sebuah database. Setelah sebelumnya kita mengenal dasar-dasar MongoDB, kali ini kita mulai untuk ke bagian penting yaitu CRUD dalam MongoDB yang tersedia dengan beberapa metode.

Membuat document (Insert)

Dalam hal membuat document (istilah pengganti record table dalam NoSQL) MongoDB menyediakan beberapa cara yang diantaranya yaitu:

- membuat document menggunakan insert()

Cara yang paling umum untuk membuat data document baru adalah dengan metode insert(). Metode ini memerlukan 1 argument yang merepresentasikan data baru sebuah document. Contohnya yaitu sebagai berikut:
> db.people.insert({ "firstname": "Jim", "lastname": "Doe", "address": "20 Main St." })

- membuat document menggunakan update()

Metode update() biasanya digunakan untuk mengubah sebuah data. Tetapi dalam MongoDB kita dapat menggunakannya untuk membuat document baru dengan syarat jika tidak ada document yang sama dengan query document dan juga perlu menambahkan "upsert" flag. Contohnya sebagai berikut:
> db.people.update({
... "firstname": "Jim"
... },
... {
... "firstname": "Jim",
... "lastname": "Doe",
... "address": "555 Main St."
... },
... {
... upsert: true
... })
WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : ObjectId("58e34c04002c40a5718b63af")
Contoh query diatas akan membuat MongoDB mencari "firstname" Jim dan mencoba untuk mengubah datanya, tapi nyatanya collection "people" tidak memiliki "firstname" Jim dan karena kita menggunakan "upsert" flag dan MongoDB tidak menemukan data yang sesuai untuk di update maka sebagai gantinya document baru akan dibuat.

- membuat document menggunakan save()

Cara lain untuk membuat document baru adalah dengan menggunakan metode save(). Berikut ini contoh menggunakan save():
> db.people.save({
... "firstname": "John",
... "lastname": "Doe",
... "address": "555 Main St."
... })
WriteResult({ "nInserted" : 1 })
Cukup sederhana cara kerjanya yaitu dengan memasukkan langsung document baru tanpa menyertakan key "_id", atau bisa juga dengan menyertakan key "_id" yang kemudian MongoDB akan memeriksa apakah "_id" itu ada. Efeknya mirip seperti metode update() yang akan langsung membuat document baru jika data yang dicari tidak ditemukan.

Mengubah Dokumen (Update)

Semua proses update membutuhkan paling tidak 2 argument. Argument pertama menspesifikasikan field document dengan nilai apa yang mau diubah dan argument kedua mendefinisikan nilai baru document yang akan diubah. Perlu untuk diketahui kalau secara default fungsi update() cuma mengubah sebuah document (single document), meskipun sebenarnya dapat dioperasikan untuk mengubah banyak document dan bahkan seluruh collection.

Ada 2 tipe umum dari update yaitu perbedaan antara maksud penggunaannya. Tipe pertama yaitu melakukan modifikasi terhadap sebuah document, dan tipe kedua yaitu melakukan replace document lama dengan yang baru. Contoh dari tipe pertama adalah sebagai berikut:
> db.people.update(
... {firstname: "John"},
... {$set: {lastname: "Smith"}}
... )
Proses dari operasi diatas yaitu mencari sebuah document dimana memiliki firstname "John" dan kemudian mengganti nilai field lastname menjadi "Smith". Dan juga kita menggunakan $set operator yang berguna untuk menentukan nilai spesifik sebuah field.

Kemudian untuk cara kedua cukup membingungkan, coba perhatikan operasi berikut ini:
> db.people.update(
... {firstname: "John"},
... {lastname: "Smith"}
... )
Hasil contoh diatas, document akan di-replace hanya pada yang memiliki field lastname, dan field firstname akan dihapus karena document pertama digunakan hanya untuk pencocokan(sebagai argument pertama) dan document kedua digunakan untuk me-replace document yang telah cocok dengan hasil pencarian berdasarkan document pertama.

Jadi intinya, menggunakan teknik replace cukup beresiko karena dapat menghapus field jika tidak digunakan dengan tepat, oleh karena itu harus hati-hati dalam penggunaanya dan lebih disarankan untuk menggunakan $set operator untuk mengupdate document.

Menghapus Document (Delete)

Kita sudah tahu dasar dari operasi create, read, dan update dalam MongoDB. Selanjutnya adalah operasi terakhir yang sederhana yaitu menghapus data.

Dalam penggunaannya, jika tidak ada parameter yang diberikan, operasi remove() akan menghapus semua collection dari document-nya, misalnya:
> db.people.remove()
Hasilnya sudah pasti akan menghapus seluruh data yang ada. Setidaknya kita butuh menghapus data tertentu dari sebuah document, dan untuk itu dibutuhkan parameter ataupun query selector kedalam fungsi remove().

Ada contoh yang misalnya kita ingin menghapus semua nama orang yang memiliki lastname "Smith", jadi bentuk query yang dibuat yaitu:
> db.people.remove(
... {lastname: "Smith"}
... )
Perlu diingat kalau fungsi remove() tidak akan menghapus collection melainkan hanya menghapus document, bisa disamakan dengan klausa DELETE dalam SQL. Dan untuk menghapus collection kita gunakan fungsi drop().
> db.people.drop()

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
Part 6: Tutorial MongoDB: Operasi CRUD - Part 6

Itulah dasar dalam menggunakan operasi CRUD di MongoDB. Untuk perbandingan lebih jelas dapat dilihat pada MongoDB CRUD Operations yang telah menyediakan tabel perbanding antara query SQL dan NoSQL.

0 comments:

Post a Comment