Sebelum MongoDB versi 3.4 kami tidak dapat membuat indeks dengan tidak peka huruf besar/kecil .
Dalam versi 3.4 memiliki collation
opsi yang memungkinkan pengguna untuk menentukan aturan khusus bahasa untuk perbandingan string , seperti aturan untuk huruf besar dan tanda aksen.
Opsi collation memiliki sintaks berikut:
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}
di mana lokal bidang wajib; semua bidang lainnya opsional .
Untuk membuat indeks dengan tidak peka huruf besar/kecil, kita perlu menggunakan bidang wajib lokal dan kekuatan bidang untuk tingkat perbandingan string. strength
memungkinkan nilai mengamuk 1 - 5 . baca lebih lanjut tentang collation
Atribut kekuatan menentukan apakah aksen atau huruf besar/kecil diperhitungkan saat menyusun atau mencocokkan teks
Contoh:
jika kekuatan=1 lalu peran =Peran =peran
jika kekuatan=2 lalu peran =Peran
jika kekuatan=3 lalu peran
Dokumen tingkat perbandingan
Jadi kita perlu menggunakan strength=2
untuk membuat indeks. seperti:
db.collectionName.createIndex(
{ name: 1, formula: 1, type: 1 },
{
name: "fertilizer_idx",
collation: {locale: "en", strength: 2},
unique: true
}
)
N.B :collation
opsi tidak tersedia untuk teks indeks.