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

Isi kandungan:

Anonim

Indeks sangat penting dalam pangkalan data mana pun, dan dengan MongoDB itu tidak berbeza. Dengan penggunaan Indeks, melakukan pertanyaan dalam MongoDB menjadi lebih cekap.

Sekiranya anda mempunyai koleksi dengan ribuan dokumen tanpa indeks, dan kemudian anda meminta untuk mencari dokumen tertentu, maka dalam hal demikian MongoDB perlu mengimbas keseluruhan koleksi untuk mencari dokumen tersebut. Tetapi jika anda mempunyai indeks, MongoDB akan menggunakan indeks ini untuk membatasi jumlah dokumen yang harus dicari dalam koleksi.

Indeks adalah kumpulan data khas yang menyimpan sebahagian daripada data koleksi. Oleh kerana data itu separa, menjadi lebih mudah untuk membaca data ini. Set separa ini menyimpan nilai medan tertentu atau sekumpulan medan yang disusun mengikut nilai medan.

Dalam tutorial ini, anda akan belajar -

  • Memahami Kesan Indeks
  • Cara Membuat Indeks: createIndex ()
  • Cara Mencari Indeks: getindexes ()
  • Cara Menjatuhkan Indeks: dropindex ()

Memahami Kesan Indeks

Sekarang walaupun dari pengenalan kita telah melihat bahawa indeks bagus untuk pertanyaan, tetapi mempunyai terlalu banyak indeks dapat memperlambat operasi lain seperti operasi Masukkan, Padam dan Kemas kini.

Sekiranya terdapat operasi penyisipan, penghapusan, dan kemas kini yang kerap dilakukan pada dokumen, maka indeks perlu sering berubah, yang hanya menjadi overhead untuk pengumpulan.

Contoh di bawah menunjukkan contoh nilai medan apa yang dapat menjadi indeks dalam koleksi. Indeks boleh didasarkan hanya pada satu bidang dalam koleksi, atau dapat didasarkan pada beberapa bidang dalam koleksi.

Dalam contoh di bawah, Employeeid "1" dan EmployeeCode "AA" digunakan untuk mengindeks dokumen dalam koleksi. Oleh itu, apabila carian pertanyaan dibuat, indeks ini akan digunakan untuk mencari dokumen yang diperlukan dalam koleksi dengan cepat dan cekap.

Oleh itu, walaupun pertanyaan carian dibuat berdasarkan EmployeeCode "AA", dokumen itu akan dikembalikan.

Cara Membuat Indeks: createIndex ()

Membuat Indeks di MongoDB dilakukan dengan menggunakan kaedah " createIndex ".

Contoh berikut menunjukkan cara menambah indeks ke koleksi. Mari kita anggap bahawa kita mempunyai koleksi Karyawan yang sama dengan nama Bidang "Employeeid" dan "EmployeeName".

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

Penjelasan Kod:

  1. The createIndex kaedah yang digunakan untuk mencipta indeks berdasarkan "Employeeid" dokumen itu.
  2. Parameter '1' menunjukkan bahawa apabila indeks dibuat dengan nilai Field "Employeeid", mereka harus disusun dalam urutan menaik. Harap maklum bahawa ini berbeza dengan bidang _id (Medan id digunakan untuk mengenal pasti setiap dokumen dalam koleksi secara unik) yang dibuat secara automatik dalam koleksi oleh MongoDB. Dokumen sekarang akan disusun mengikut Kakitangan dan bukan bidang _id.

Sekiranya arahan itu berjaya dilaksanakan, Output berikut akan ditunjukkan:

Pengeluaran:

  1. NumIndexesBefore: 1 menunjukkan bilangan nilai Medan (Medan sebenar dalam koleksi) yang ada di dalam indeks sebelum perintah itu dijalankan. Ingat bahawa setiap koleksi mempunyai medan _id yang juga dikira sebagai nilai Medan untuk indeks. Oleh kerana medan indeks _id adalah sebahagian daripada koleksi ketika mula-mula dibuat, nilai numIndexesBefore adalah 1.
  2. The numIndexesAfter: 2 menunjukkan bilangan nilai Medan yang ada di dalam indeks setelah perintah dijalankan.
  3. Di sini output "ok: 1" menentukan bahawa operasi berjaya, dan indeks baru ditambahkan ke koleksi.

Kod di atas menunjukkan cara membuat indeks berdasarkan satu nilai bidang, tetapi seseorang juga dapat membuat indeks berdasarkan beberapa nilai bidang.

Contoh berikut menunjukkan bagaimana ini dapat dilakukan;

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

Penjelasan Kod:

  1. Kaedah createIndex kini mengambil kira beberapa nilai Field yang sekarang akan menyebabkan indeks dibuat berdasarkan "Employeeid" dan "EmployeeName". Employeeid: 1 dan EmployeeName: 1 menunjukkan bahawa indeks harus dibuat pada 2 nilai medan ini dengan: 1 menunjukkan bahawa ia harus dalam urutan menaik.

Cara Mencari Indeks: getindexes ()

Mencari Indeks di MongoDB dilakukan dengan menggunakan kaedah "getIndexes" .

Contoh berikut menunjukkan bagaimana ini dapat dilakukan;

db.Employee.getIndexes()

Penjelasan Kod:

  1. Kaedah getIndexes digunakan untuk mencari semua indeks dalam koleksi.

Sekiranya arahan itu berjaya dilaksanakan, Output berikut akan ditunjukkan:

Pengeluaran:

  1. Hasilnya mengembalikan dokumen yang menunjukkan bahawa terdapat 2 indeks dalam koleksi yang merupakan medan _id, dan yang lain adalah bidang id Pekerja. The: 1 menunjukkan bahawa nilai medan dalam indeks dibuat dalam urutan menaik.

Cara Menjatuhkan Indeks: dropindex ()

Menghapus Indeks di MongoDB dilakukan dengan menggunakan kaedah dropIndex.

Contoh berikut menunjukkan bagaimana ini dapat dilakukan;

db.Employee.dropIndex(Employeeid:1)

Penjelasan Kod:

  1. Kaedah dropIndex mengambil nilai Medan yang diperlukan yang perlu dikeluarkan dari Indeks.

Sekiranya arahan itu berjaya dilaksanakan, Output berikut akan ditunjukkan:

Pengeluaran:

  1. The nIndexesWas: 3 menunjukkan bilangan nilai Medan yang ada di dalam indeks sebelum perintah dijalankan. Ingat bahawa setiap koleksi mempunyai medan _id yang juga dikira sebagai nilai Medan untuk indeks.
  2. Output ok: 1 menentukan bahawa operasi berjaya, dan medan "Employeeid" dikeluarkan dari indeks.

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

Contoh berikut menunjukkan bagaimana ini dapat dilakukan.

db.Employee.dropIndex()

Penjelasan Kod:

  1. Kaedah dropIndexes akan menjatuhkan semua indeks kecuali untuk indeks _id.

Sekiranya arahan itu berjaya dilaksanakan, Output berikut akan ditunjukkan:

Pengeluaran:

  1. The nIndexesWas: 2 menunjukkan bilangan nilai Medan yang ada di dalam indeks sebelum perintah dijalankan.
  2. Ingat sekali lagi bahawa setiap koleksi mempunyai medan _id yang juga dikira sebagai nilai Medan ke indeks, dan itu tidak akan dikeluarkan oleh MongoDB dan itulah yang ditunjukkan oleh mesej ini.
  3. Output ok: 1 menentukan bahawa operasi berjaya.

Ringkasan

  • Mendefinisikan indeks penting untuk pencarian dokumen yang lebih cepat dan cekap dalam koleksi.
  • Indeks dapat dibuat dengan menggunakan kaedah createIndex. Indeks dapat dibuat hanya pada satu bidang atau beberapa nilai medan.
  • Indeks boleh didapati dengan menggunakan kaedah getIndexes.
  • Indeks dapat dikeluarkan dengan menggunakan dropIndex untuk indeks tunggal atau dropIndexes untuk menjatuhkan semua indeks.