Avant MongoDB version 3.4 nous n'avons pas pu créer d'index avec insensible à la casse .
Dans la version 3.4 a collation
option qui permet aux utilisateurs de spécifier des règles spécifiques à la langue pour la comparaison de chaînes , comme les règles pour la casse et les accents.
L'option de classement a la syntaxe suivante :
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}
où les paramètres régionaux le champ est obligatoire; tous les autres champs sont facultatifs .
Pour créer un index insensible à la casse, nous devons utiliser le champ obligatoire locale et la force champ pour le niveau de comparaison de chaînes. strength
autorise la plage de valeurs 1 - 5 . en savoir plus sur le classement
L'attribut de force détermine si les accents ou la casse sont pris en compte lors de l'assemblage ou de la correspondance de texte
Exemple :
si force=1 puis rôle =Rôle =rôle
si force=2 puis rôle =Rôle
si force=3 puis rôle
Document de niveau de comparaison
Nous devons donc utiliser strength=2
pour créer un index. comme :
db.collectionName.createIndex(
{ name: 1, formula: 1, type: 1 },
{
name: "fertilizer_idx",
collation: {locale: "en", strength: 2},
unique: true
}
)
N.B :collation
l'option n'est pas disponible pour le texte index.