sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo unika index okänslig för skiftläge

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.



  1. MongoDB med Mongoid in Rails - Geospatial Indexing

  2. hur man hanterar _id-fältet när man använder POCO med mongodb c#-drivrutinen

  3. Mongo-fel på I control hotfix

  4. Mongodb Explain for Aggregation framework