Antes do MongoDB versão 3.4 não foi possível criar índice com não diferencia maiúsculas de minúsculas .
Na versão 3.4 tem
collation
opção que permite aos usuários especificar regras específicas do idioma para comparação de strings , como regras para letras maiúsculas e acentos. A opção de agrupamento tem a seguinte sintaxe:
collation: {
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}
onde a localidade campo é obrigatório; todos os outros campos são opcionais .
Para criar um índice sem distinção entre maiúsculas e minúsculas, precisamos usar o campo obrigatório locale e força campo para nível de comparação de string.
strength
permite intervalo de valor 1 - 5 . leia mais sobre colação O atributo de força determina se os acentos ou maiúsculas são levados em consideração ao agrupar ou combinar texto
Exemplo:
se força=1 então função =função =função
se força=2 então função =Função
se força=3 então função
Documento de nível de comparação
Portanto, precisamos usar
strength=2
para criar índice. Como:db.collectionName.createIndex(
{ name: 1, formula: 1, type: 1 },
{
name: "fertilizer_idx",
collation: {locale: "en", strength: 2},
unique: true
}
)
N.B :
collation
a opção não está disponível para texto índices.