MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongo unikalna wielkość liter w indeksie nie jest wrażliwa

Przed MongoDB w wersji 3.4 nie mogliśmy utworzyć indeksu z bez uwzględniania wielkości liter .

W wersji 3.4 ma collation opcja, która pozwala użytkownikom określić reguły specyficzne dla języka do porównania ciągów , takie jak zasady dotyczące liter i znaków akcentu.

Opcja sortowania ma następującą składnię:

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

gdzie miejscowość pole jest obowiązkowe; wszystkie inne pola są opcjonalne .

Aby utworzyć indeks bez uwzględniania wielkości liter, musimy użyć obowiązkowego pola locale i siła pole dla poziomu porównania ciągów. strength pozwala na wściekłość wartości 1 - 5 . czytaj więcej o sortowaniu

Atrybut siły określa, czy akcenty lub wielkość liter są brane pod uwagę podczas sortowania lub dopasowywania tekstu

Przykład:

jeśli siła=1 następnie rola =rola =rola

jeśli siła=2 następnie rola =Rola

jeśli siła=3 następnie rola

Dokument na poziomie porównania

Więc musimy użyć strength=2 aby utworzyć indeks. jak:

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

Uwaga :collation opcja nie jest dostępna dla tekstu indeksy.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $maks.

  2. Szybkie stronicowanie z MongoDB

  3. Nie można uwierzytelnić się w mongodb za pomocą PHP

  4. Mongodb zlicza wszystkie elementy tablicy we wszystkich obiektach spełniających kryteria

  5. Mongodb dopasowuje znaki akcentowane jako podstawowy znak