Före MongoDB version 3.4 vi kunde inte skapa index med skiftlägesokänslig .
I version 3.4 har collation
alternativ som låter användare ange språkspecifika regler för strängjämförelse , såsom regler för bokstäver och accenttecken.
Sorteringsalternativet har följande syntax:
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}
där lokalen fältet är obligatoriskt; alla andra fält är valfria .
För att skapa index med skiftlägesokänsligt måste vi använda det obligatoriska fältet locale och styrka fält för strängjämförelsenivå. strength
tillåter värde rage 1 - 5 . läs mer om sortering
Attributet styrka avgör om accenter eller skiftläge beaktas vid sortering eller matchning av text
Exempel:
om styrka=1 sedan roll =Roll =roll
om styrka=2 sedan roll =Roll
om styrka=3 sedan roll
Jämförelsenivå doc
Så vi måste använda strength=2
för att skapa index. gillar:
db.collectionName.createIndex(
{ name: 1, formula: 1, type: 1 },
{
name: "fertilizer_idx",
collation: {locale: "en", strength: 2},
unique: true
}
)
OBS :collation
alternativet är inte tillgängligt för text index.