Vor MongoDB Version 3.4 Index konnte nicht erstellt werden mit Groß-/Kleinschreibung .
In Version 3.4 hat collation
Option, mit der Benutzer sprachspezifische Regeln festlegen können für String-Vergleich , wie Regeln für Großbuchstaben und Akzentzeichen.
Die Kollatierungsoption hat die folgende Syntax:
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}
wo das Gebietsschema Feld ist Pflichtfeld; alle anderen Felder sind optional .
Um einen Index ohne Berücksichtigung der Groß-/Kleinschreibung zu erstellen, müssen wir das Pflichtfeld locale verwenden und Stärke Feld für String-Vergleichsebene. strength
erlaubt Wertebereich 1 - 5 . Lesen Sie mehr über Sortierung
Das Stärkeattribut bestimmt, ob Akzente oder Groß-/Kleinschreibung beim Sortieren oder Abgleichen von Text berücksichtigt werden
Beispiel:
wenn Stärke=1 dann Rolle =Rolle =Rolle
wenn Stärke=2 dann Rolle =Rolle
wenn Stärke=3 dann Rolle
Vergleichsebene doc
Also müssen wir strength=2
verwenden Index zu erstellen. wie:
db.collectionName.createIndex(
{ name: 1, formula: 1, type: 1 },
{
name: "fertilizer_idx",
collation: {locale: "en", strength: 2},
unique: true
}
)
NB :collation
Option ist für Text nicht verfügbar Indizes.