Show
Dvir Arad Mengikuti 26 Mei 2019 · 5 menit membaca · Khusus anggota Pengantar Indeks MongoDB Apa itu indeks MongoDB?
Membuat indeksSaat membuat dokumen dalam koleksi, MongoDB membuat indeks unik menggunakan bidang _id. MongoDB menyebut ini sebagai Indeks _id Default. Indeks default ini tidak dapat dihapus dari koleksi Saat menanyakan kumpulan data pengujian, Anda dapat melihat kolom _id yang akan digunakan sebagai indeks default db.studentgrades.find().pretty()_ Hasil Sekarang mari kita buat index. Untuk melakukannya, Anda dapat menggunakan metode createIndex menggunakan sintaks berikut db.<collection>.createIndex(<Key and Index Type>, <Options>) Saat membuat indeks, Anda perlu menentukan bidang yang akan diindeks dan arah tombol (1 atau -1) untuk menunjukkan urutan naik atau turun Hal lain yang perlu diingat adalah nama indeks. Secara default, MongoDB akan menghasilkan nama indeks dengan menggabungkan kunci yang diindeks dengan arah setiap kunci dalam indeks menggunakan garis bawah sebagai pemisah. Misalnya. {nama. 1} akan dibuat sebagai name_1 Opsi terbaik adalah menggunakan opsi nama untuk menentukan nama indeks khusus saat membuat indeks. Indeks tidak dapat diganti namanya setelah dibuat. (Satu-satunya cara untuk mengganti nama indeks adalah dengan membuang indeks itu terlebih dahulu, , dan membuatnya kembali menggunakan nama yang diinginkan. ) Mari buat indeks menggunakan bidang nama di koleksi nilai siswa dan beri nama sebagai indeks nama siswa db.studentgrades.createIndex( {name: 1}, {name: "student name index"} ) Hasil Menemukan indeksAnda dapat menemukan semua indeks yang tersedia dalam koleksi MongoDB dengan menggunakan metode getIndexes. Ini akan mengembalikan semua indeks dalam koleksi tertentu db.<collection>.getIndexes()_ Mari kita lihat semua indeks di koleksi studentgrades menggunakan perintah berikut db.studentgrades.getIndexes() Hasil Output berisi indeks _id default dan indeks nama siswa yang dibuat pengguna Menjatuhkan indeksUntuk menghapus indeks dari koleksi, gunakan metode dropIndex sambil menentukan nama indeks yang akan dihapus db.<collection>.dropIndex(<Index Name / Field Name>)_ Mari kita hapus indeks yang dibuat pengguna dengan indeks nama siswa, seperti yang ditunjukkan di bawah ini db.studentgrades.dropIndex("student name index") Hasil Anda juga dapat menggunakan nilai bidang indeks untuk menghapus indeks tanpa nama yang ditentukan db.studentgrades.dropIndex({name:1})_ Hasil Perintah dropIndexes juga dapat menghapus semua indeks kecuali indeks _id default db.studentgrades.dropIndexes()_ Hasil Jenis indeks MongoDB umumMongoDB menyediakan berbagai jenis indeks yang dapat dimanfaatkan sesuai dengan kebutuhan pengguna. Inilah yang paling umum
Indeks bidang tunggalIndeks yang ditentukan pengguna ini menggunakan satu bidang dalam dokumen untuk membuat indeks dalam urutan naik atau turun (1 atau -1). Dalam indeks bidang tunggal, urutan kunci indeks tidak berdampak karena MongoDB dapat melintasi indeks di kedua arah db.studentgrades.find().pretty()_0 Hasil Indeks di atas akan mengurutkan data dalam urutan menaik menggunakan bidang nama. Anda dapat menggunakan metode sort() untuk melihat bagaimana data akan direpresentasikan dalam indeks db.studentgrades.find().pretty()_1 Hasil Indeks senyawaAnda dapat menggunakan banyak bidang dalam dokumen MongoDB untuk membuat indeks majemuk. Jenis indeks ini akan menggunakan kolom pertama untuk pengurutan awal, lalu mengurutkan berdasarkan kolom sebelumnya db.studentgrades.find().pretty()_2 Dalam indeks majemuk di atas, MongoDB akan
Indeks akan membuat struktur data yang mirip dengan berikut ini db.studentgrades.find().pretty()_3 Hasil Indeks multikunciMongoDB mendukung bidang array pengindeksan. Saat Anda membuat indeks untuk bidang yang berisi larik, MongoDB akan membuat entri indeks terpisah untuk setiap elemen dalam larik. Indeks multikunci ini memungkinkan pengguna untuk mengkueri dokumen menggunakan elemen di dalam larik MongoDB akan secara otomatis membuat indeks multikey saat bertemu dengan bidang array tanpa mengharuskan pengguna untuk secara eksplisit menentukan tipe multikey Mari buat kumpulan data baru yang berisi bidang larik untuk mendemonstrasikan pembuatan indeks multikunci db.studentgrades.find().pretty()_4 Hasil Sekarang mari buat indeks menggunakan bidang nilai db.studentgrades.find().pretty()_5 Hasil Kode di atas akan secara otomatis membuat indeks Multikey di MongoDB. Saat Anda meminta dokumen menggunakan bidang larik (nilai), MongoDB akan mencari elemen pertama dari larik yang ditentukan dalam metode find() dan kemudian mencari seluruh kueri yang cocok Misalnya, mari pertimbangkan kueri pencarian berikut db.studentgrades.find().pretty()_6 Awalnya, MongoDB akan menggunakan indeks multikey untuk mencari dokumen di mana array nilai berisi elemen pertama (80) di posisi mana pun. Kemudian, dalam dokumen yang dipilih tersebut, dokumen dengan semua elemen yang cocok akan dipilih Jenis indeks MongoDB lainnyaSelain tipe Indeks populer yang disebutkan di atas, MongoDB juga menawarkan beberapa tipe indeks khusus untuk kasus penggunaan yang ditargetkan
Indeks GeospasialMongoDB menyediakan dua jenis indeks untuk meningkatkan efisiensi kueri basis data saat menangani data koordinat geospasial
db.studentgrades.find().pretty()_7 Indeks teksJenis indeks teks memungkinkan Anda untuk mencari konten string dalam koleksi db.studentgrades.find().pretty()_8 Indeks hashJenis indeks Hashed MongoDB digunakan untuk memberikan dukungan fungsionalitas. Ini akan mengindeks nilai hash dari bidang yang ditentukan db.studentgrades.find().pretty()_9 properti indeks MongoDBAnda dapat meningkatkan fungsionalitas indeks lebih lanjut dengan memanfaatkan properti indeks. Di bagian ini, Anda akan mengetahui properti indeks yang umum digunakan ini
Indeks jarangProperti jarang MongoDB memungkinkan indeks untuk menghilangkan dokumen pengindeksan dalam koleksi jika bidang yang diindeks tidak tersedia dalam dokumen dan membuat indeks yang hanya berisi dokumen yang berisi bidang yang diindeks db.<collection>.createIndex(<Key and Index Type>, <Options>)0 Hasil Di koleksi nilai siswa sebelumnya, jika Anda membuat indeks menggunakan bidang catatan, itu hanya akan mengindeks dua dokumen karena bidang catatan hanya ada di dua dokumen Indeks parsialFungsionalitas indeks parsial memungkinkan pengguna membuat indeks yang cocok dengan kondisi filter tertentu. Indeks parsial menggunakan opsi partialFilterExpression untuk menentukan kondisi filter db.<collection>.createIndex(<Key and Index Type>, <Options>)1 Hasil Kode di atas akan membuat indeks untuk bidang nama tetapi hanya akan menyertakan dokumen yang nilai bidang skornya lebih besar atau sama dengan 90 Indeks unikProperti unik memungkinkan pengguna membuat indeks MongoDB yang hanya menyertakan nilai unik. Ini akan
db.<collection>.createIndex(<Key and Index Type>, <Options>)2 Hasil Indeks yang dibuat di atas akan membatasi pengindeksan ke dokumen dengan nilai unik di bidang nama Rekap indeksItu menyimpulkan tutorial indeks MongoDB ini. Anda telah mempelajari cara membuat, menemukan, dan menjatuhkan indeks, menggunakan tipe indeks yang berbeda, dan membuat indeks yang kompleks. Indeks ini kemudian dapat digunakan untuk lebih meningkatkan fungsionalitas database MongoDB, meningkatkan kinerja aplikasi yang menggunakan kueri database cepat Bagaimana cara menambahkan pengindeksan di MongoDB?Buat Indeks Tunggal di MongoDB
. Untuk memulai, pilih database yang sudah berisi koleksi. Setelah Anda memilih database, gunakan perintah createIndex() di shell untuk membuat satu indeks .
Bagaimana cara mendapatkan indeks di MongoDB?Anda dapat menemukan semua indeks yang tersedia dalam koleksi MongoDB dengan menggunakan metode getIndexes . Ini akan mengembalikan semua indeks dalam koleksi tertentu. Hasil. Output berisi indeks _id default dan indeks nama siswa yang dibuat pengguna.
Berapa banyak indeks yang dapat Anda miliki di MongoDB?Sebuah koleksi tidak boleh memiliki lebih dari 64 indeks . Panjang nama indeks tidak boleh lebih dari 125 karakter.
Apa pro dan kontra pengindeksan di MongoDB?Keuntungan terbesar pengindeksan adalah mempercepat penemuan, pembaruan, dan penghapusan kueri Anda . Cukup alami karena lebih mudah untuk mencari elemen berdasarkan bidang yang diindeks. Kerugian dari pengindeksan adalah 1. Membutuhkan memori (jelas). |