MongoDB Tutorial Pengindeksan – createIndex(), dropindex() Contoh

Indeks sangat penting dalam database apa pun, dan dengan MongoDB tidak ada bedanya. Dengan menggunakan Indeks, melakukan kueri di MongoDB menjadi lebih efisien.

Jika Anda memiliki koleksi ribuan dokumen tanpa indeks, dan kemudian Anda meminta untuk menemukan dokumen tertentu, maka dalam kasus seperti itu MongoDB perlu memindai seluruh koleksi untuk menemukan dokumen. Namun jika Anda memiliki indeks, MongoDB akan menggunakan indeks ini untuk membatasi jumlah dokumen yang harus dicari dalam koleksi.

Indeks adalah kumpulan data khusus yang menyimpan sebagian dari kumpulan data. Karena datanya parsial, membaca data ini menjadi lebih mudah. Kumpulan sebagian ini menyimpan nilai bidang tertentu atau sekumpulan bidang yang diurutkan berdasarkan nilai bidang tersebut.

Memahami Dampak Indeks

Meskipun dari pendahuluan kita telah melihat bahwa indeks bagus untuk kueri, namun memiliki terlalu banyak indeks dapat memperlambat operasi lain seperti operasi Sisipkan, Hapus, dan Perbarui.

Jika sering terjadi operasi penyisipan, penghapusan, dan pembaruan pada dokumen, maka indeks perlu sering diubah, yang hanya akan menjadi beban tambahan untuk pengumpulan.

Contoh di bawah ini menunjukkan contoh nilai bidang apa yang dapat dijadikan indeks dalam koleksi. Indeks dapat didasarkan pada satu bidang saja dalam koleksi, atau dapat didasarkan pada beberapa bidang dalam koleksi.

Pada contoh di bawah, Employeeid “1” dan EmployeeCode “AA” digunakan untuk mengindeks dokumen dalam koleksi. Jadi ketika pencarian kueri dilakukan, indeks ini akan digunakan untuk menemukan dokumen yang diperlukan dalam koleksi dengan cepat dan efisien.

Jadi meskipun permintaan pencarian didasarkan pada EmployeeCode “AA”, dokumen tersebut akan dikembalikan.

Memahami Dampak Indeks

Cara Membuat Indeks: createIndex()

Membuat Indeks di MongoDB dilakukan dengan menggunakan “buatIndeks" metode.

Contoh berikut menunjukkan cara menambahkan indeks ke koleksi. Mari kita asumsikan bahwa kita memiliki koleksi Karyawan yang sama yang memiliki nama Bidang “Employeeid” dan “EmployeeName”.

Buat Indeks: createIndex()

db.Employee.createIndex({Employeeid:1})

Penjelasan Kode:

  1. buatIndeks Metode ini digunakan untuk membuat indeks berdasarkan “Employeeid” pada dokumen.
  2. Parameter '1' menunjukkan bahwa ketika indeks dibuat dengan nilai Bidang “Employeeid”, nilai tersebut harus diurutkan dalam urutan menaik. Harap dicatat bahwa ini berbeda dari bidang _id (bidang id digunakan untuk mengidentifikasi secara unik setiap dokumen dalam koleksi) yang dibuat secara otomatis dalam koleksi oleh MongoDB. Dokumen sekarang akan diurutkan berdasarkan Employeeid dan bukan kolom _id.

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:

Keluaran:

Buat Indeks: createIndex()

  1. NumIndexesBefore: 1 menunjukkan jumlah nilai Bidang (Bidang sebenarnya dalam koleksi) yang ada di indeks sebelum perintah dijalankan. Ingatlah bahwa setiap koleksi memiliki bidang _id yang juga dihitung sebagai nilai Bidang pada indeks. Karena bidang indeks _id adalah bagian dari koleksi saat pertama kali dibuat, nilai numIndexesBefore adalah 1.
  2. numIndexesAfter: 2 menunjukkan jumlah nilai Bidang yang ada di indeks setelah perintah dijalankan.
  3. Di sini output “ok: 1” menentukan bahwa operasi berhasil, dan indeks baru ditambahkan ke koleksi.

Kode di atas menunjukkan cara membuat indeks berdasarkan satu nilai bidang, namun kita juga dapat membuat indeks berdasarkan beberapa nilai bidang.

Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan;

Buat Indeks: createIndex()

db.Employee.createIndex({Employeeid:1, EmployeeName:1])

Penjelasan Kode:

  • Metode createIndex sekarang memperhitungkan beberapa nilai Bidang yang sekarang akan menyebabkan indeks dibuat berdasarkan “Employeeid” dan “EmployeeName”. Employeeid:1 dan EmployeeName:1 menunjukkan bahwa indeks harus dibuat pada 2 nilai bidang ini dengan :1 menunjukkan bahwa indeks harus dalam urutan menaik.

Cara Menemukan Indeks: getindexes()

Menemukan Indeks di MongoDB dilakukan dengan menggunakan “dapatkan Indeks” Metode.

Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan;

Temukan Indeks: getindexes()

db.Employee.getIndexes()

Penjelasan Kode:

  • Metode getIndexes digunakan untuk menemukan semua indeks dalam koleksi.

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:

Keluaran:

Temukan Indeks: getindexes()

  • Outputnya mengembalikan dokumen yang hanya menunjukkan bahwa ada 2 indeks dalam koleksi yaitu bidang _id, dan yang lainnya adalah bidang id Karyawan. :1 menunjukkan bahwa nilai bidang dalam indeks dibuat dalam urutan menaik.

Cara Menjatuhkan Indeks: dropindex()

Menghapus Indeks di MongoDB dilakukan dengan menggunakan metode dropIndex.

Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan;

Jatuhkan Indeks: dropindex()

db.Employee.dropIndex(Employeeid:1)

Penjelasan Kode:

  • Metode dropIndex mengambil nilai Bidang yang diperlukan yang perlu dihapus dari Indeks.

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:

Keluaran:

Jatuhkan Indeks: dropindex()

  1. nIndexesWas: 3 menunjukkan jumlah nilai Bidang yang ada di indeks sebelum perintah dijalankan. Ingatlah bahwa setiap koleksi memiliki bidang _id yang juga dihitung sebagai nilai Bidang pada indeks.
  2. Output ok: 1 menentukan bahwa operasi berhasil, dan kolom “Employeeid” dihapus dari indeks.

Untuk menghapus semua indeks sekaligus dalam koleksi, seseorang dapat menggunakan perintah dropIndexes.

Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan.

Jatuhkan Indeks: dropindex()

db.Employee.dropIndex()

Penjelasan Kode:

  • Metode dropIndexes akan menghapus semua indeks kecuali indeks _id.

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan:

Keluaran:

Jatuhkan Indeks: dropindex()

  1. nIndexesWas: 2 menunjukkan jumlah nilai Bidang yang ada di indeks sebelum perintah dijalankan.
  2. Ingat lagi bahwa setiap koleksi memiliki bidang _id yang juga dihitung sebagai nilai Bidang pada indeks, dan itu tidak akan dihapus oleh MongoDB dan itulah yang ditunjukkan oleh pesan ini.
  3. Output ok: 1 menunjukkan bahwa operasi berhasil.

Kesimpulan

  • Menentukan indeks penting untuk pencarian dokumen yang lebih cepat dan efisien dalam suatu koleksi.
  • Indeks dapat dibuat dengan menggunakan metode createIndex. Indeks dapat dibuat hanya pada satu bidang atau beberapa nilai bidang.
  • Indeks dapat ditemukan dengan menggunakan metode getIndexes.
  • Indeks dapat dihapus dengan menggunakan dropIndex untuk indeks tunggal atau dropIndex untuk menghapus semua indeks.