Bab ini memperkenalkan indeks MongoDB. Seperti halnya MYSQL, MongoDB juga mendukung indeks. Perbedaannya adalah bahwa MongoDB mendukung penambahan indeks ke setiap field bertingkat dari struktur JSON, dengan tujuan yang sama yaitu meningkatkan efisiensi query.
Jenis Indeks MongoDB
Indeks Single Field
Sama seperti MYSQL, membuat indeks untuk satu field.
Format:
db.collection.createIndex( { nama_field: arah_pengurutan(1 atau -1) } )
Catatan: Arah pengurutan 1 mewakili urutan menaik, dan -1 mewakili urutan menurun.
Contoh 1:
db.records.createIndex( { score: 1 } )
Membuat indeks untuk field score.
Contoh 2:
db.records.createIndex( { "location.state": 1 } )
Membuat indeks untuk field JSON bertingkat location.state.
Indeks Compound
Sama seperti MYSQL, beberapa field dapat digabungkan untuk membuat indeks, mempercepat kecepatan query compound.
Format:
db.collection.createIndex( { <field1>: <type>, <field2>: <type2>, ... } )
Contoh:
db.products.createIndex( { "item": 1, "stock": 1 } )
Membuat indeks compound untuk field item dan stock, keduanya dalam urutan menaik (1 mewakili urutan menaik).
Indeks Teks (Indeks Teks Penuh)
Indeks teks (text) digunakan terutama untuk mendukung pencarian teks penuh.
Catatan: Suatu koleksi hanya memperbolehkan satu indeks teks, tetapi indeks teks dapat mencakup beberapa field.
Contoh:
db.stores.createIndex( { name: "text", description: "text" } )
Membuat indeks teks penuh untuk field name dan description.
Catatan: Untuk detailnya, silakan lihat Bagian Indeks Teks Penuh.
Indeks Spasial (Indeks GEO)
Utamanya digunakan untuk mendukung query terkait informasi geografis, terutama mendukung dua jenis indeks: 2dsphere dan 2d. Untuk detailnya, silakan lihat Bagian Query Geospasial.
Menghapus Indeks
Untuk menampilkan semua indeks dalam sebuah koleksi:
db.pets.getIndexes()
Untuk menghapus indeks catIdx dari koleksi pets:
db.pets.dropIndex( "catIdx" )