MongoDB Pengindeksan: createIndex() & dropIndex()
⚡ Ringkasan Cerdas
MongoDB Indeks menyimpan subset bidang koleksi yang terurut sehingga kueri dapat menemukan dokumen tanpa memindai setiap catatan. Metode createIndex, getIndexes, dan dropIndex membangun, mencantumkan, dan menghapus struktur penting untuk kinerja ini.
Apa MongoDB Indeks?
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 berisi ribuan dokumen tanpa indeks, dan kemudian Anda melakukan kueri 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 data dari suatu koleksi. Karena datanya sebagian, maka data tersebut lebih mudah dibaca. Kumpulan data parsial ini menyimpan nilai dari suatu field tertentu, atau sekumpulan field, yang diurutkan berdasarkan nilai field tersebut.
Memahami Dampak Indeks
Meskipun pendahuluan telah menunjukkan bahwa indeks bermanfaat untuk kueri, memiliki terlalu banyak indeks dapat memperlambat operasi lain seperti operasi Sisipkan, Hapus, dan Perbarui.
Jika terdapat operasi penyisipan, penghapusan, dan pembaruan yang sering dilakukan pada dokumen, maka indeks perlu diubah sesering mungkin, yang akan menjadi beban tambahan bagi koleksi tersebut.
Contoh di bawah ini menunjukkan nilai-nilai field apa saja yang dapat membentuk indeks dalam sebuah koleksi. Sebuah indeks dapat didasarkan hanya pada satu field dalam koleksi, atau dapat didasarkan pada beberapa field dalam koleksi.
Pada contoh di bawah ini, Employeeid adalah “1” dan Employee adalah [nama karyawan].Code “AA” digunakan untuk mengindeks dokumen dalam koleksi. Jadi, ketika pencarian kueri dilakukan, indeks ini akan digunakan untuk menemukan dokumen yang dibutuhkan dalam koleksi dengan cepat dan efisien.
Jadi, meskipun kueri pencarian didasarkan pada KaryawanCode “AA”, dokumen itu akan dikembalikan.
Cara Membuat Indeks: createIndex()
Membuat indeks di MongoDB dilakukan dengan menggunakan buatIndeks Metode.
Contoh berikut menunjukkan cara menambahkan indeks ke sebuah koleksi. Mari kita asumsikan bahwa kita memiliki koleksi Karyawan yang sama, yang memiliki nama bidang "Employeeid" dan "EmployeeName".
db.Employee.createIndex({Employeeid:1})
Code Penjelasan:
- The buatIndeks Metode ini digunakan untuk membuat indeks berdasarkan “Employeeid” pada dokumen.
- 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 (yang secara unik mengidentifikasi setiap dokumen) yang MongoDB Dibuat secara otomatis. Dokumen sekarang akan diurutkan berdasarkan Employeeid dan bukan berdasarkan kolom _id.
Jika perintah berhasil dieksekusi, output berikut akan ditampilkan:
Keluaran:
- numIndexesBefore: 1 menunjukkan jumlah nilai field dalam indeks sebelum perintah dijalankan. Setiap koleksi memiliki field _id, yang juga dihitung sebagai nilai field, sehingga numIndexesBefore adalah 1.
- numIndexesAfter: 2 menunjukkan jumlah nilai field dalam indeks setelah perintah dijalankan.
- Output “ok: 1” menunjukkan bahwa operasi berhasil, dan indeks baru ditambahkan ke koleksi.
Kode di atas menunjukkan cara membuat indeks berdasarkan satu nilai field, tetapi kita juga dapat membuat indeks berdasarkan beberapa nilai field. Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan:
db.Employee.createIndex({Employeeid:1, EmployeeName:1})
Metode createIndex sekarang memperhitungkan beberapa nilai field, yang akan menyebabkan indeks dibuat berdasarkan “Employeeid” dan “EmployeeName”. Employeeid:1 dan EmployeeName:1 menunjukkan bahwa indeks harus dibuat berdasarkan dua nilai field ini, dengan :1 menunjukkan urutan menaik. Ini dikenal sebagai indeks gabungan.
Cara Menemukan Indeks: getIndexes()
Mencari indeks di MongoDB dilakukan dengan menggunakan mendapatkan indeks metode. Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan:
db.Employee.getIndexes()
Metode getIndexes digunakan untuk menemukan semua indeks dalam koleksi.
Jika perintah berhasil dieksekusi, output berikut akan ditampilkan:
Keluaran:
Output yang dihasilkan berupa dokumen yang menunjukkan bahwa terdapat dua indeks dalam koleksi: kolom _id dan kolom Employeeid. Angka :1 menunjukkan bahwa nilai kolom dalam indeks dibuat dalam urutan menaik.
Cara Menghapus Indeks: dropIndex()
Menghapus indeks di MongoDB dilakukan dengan menggunakan indeks jatuh metode. Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan:
db.Employee.dropIndex({Employeeid:1})
Metode dropIndex menerima nilai field yang diperlukan yang perlu dihapus dari indeks.
Jika perintah berhasil dieksekusi, output berikut akan ditampilkan:
Keluaran:
- nIndexesWas: 3 menunjukkan jumlah nilai field dalam indeks sebelum perintah dijalankan. Setiap koleksi memiliki field _id, yang juga dihitung sebagai nilai field.
- Output ok: 1 menentukan bahwa operasi berhasil, dan kolom “Employeeid” dihapus dari indeks.
Untuk menghapus semua indeks sekaligus dalam koleksi, Anda dapat menggunakan perintah dropIndexes. Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan:
db.Employee.dropIndexes()
Metode dropIndexes akan menghapus semua indeks kecuali indeks _id.
Jika perintah berhasil dieksekusi, output berikut akan ditampilkan:
Keluaran:
- nIndexesWas: 2 menunjukkan jumlah nilai field dalam indeks sebelum perintah dijalankan.
- Setiap koleksi memiliki kolom _id, yang juga dihitung sebagai nilai kolom dan tidak akan dihapus oleh MongoDBItulah yang ditunjukkan oleh pesan ini.
- Output ok: 1 menunjukkan bahwa operasi berhasil.











