sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongo unikke indeks ufølsomme

Tidligere MongoDB version 3.4 vi kunne ikke oprette indeks med ufølsomme store og små bogstaver .

I version 3.4 har collation mulighed, der giver brugerne mulighed for at angive sprogspecifikke regler til strengsammenligning , såsom regler for bogstaver og accenttegn.

Sorteringsindstillingen har følgende syntaks:

collation: {
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}

hvor lokaliteten feltet er obligatorisk; alle andre felter er valgfrie .

For at oprette et indeks uden store og små bogstaver skal vi bruge det obligatoriske felt locale og styrke felt for strengsammenligningsniveau. strength tillader værdi-rage 1 - 5 . læs mere om sortering

Attributten styrke bestemmer, om der tages hensyn til accenter eller store og små bogstaver, når tekst sorteres eller matches

Eksempel:

hvis styrke=1 derefter rolle =Rolle =rolle

hvis styrke=2 derefter rolle =Rolle

hvis styrke=3 derefter rolle

Sammenligningsniveau dok.

Så vi skal bruge strength=2 at oprette indeks. som:

db.collectionName.createIndex(
  { name: 1, formula: 1, type: 1 },
  { 
    name: "fertilizer_idx",
    collation: {locale: "en", strength: 2},
    unique: true
  }
)

NB :collation indstillingen er ikke tilgængelig for tekst indekser.



  1. TypeError:ObjectId('') kan ikke JSON serialiseres

  2. mongodb - Find dokument med nærmeste heltalsværdi

  3. MongoDB prik (.) i nøglenavn

  4. mongoexport samlet eksport til en csv-fil