Crie uma collection com agrupamento
Nesta página
Agrupamento possibilita que você especifique regras específicas do idioma para comparação de strings, como regras para letras maiúsculas e acentos.
Procedimento
Selecione um valor localepara .
É necessário selecionar um locale a partir dos idiomas suportados pelo MongoDB.
Todos os outros parâmetros de opções de agrupamento são opcionais. Para obter descrições dos campos, consulte Agrupamento.
Restrições e limitações
As seguintes restrições se aplicam quando o parâmetro numericOrdering
é configurado para true
:
Somente substrings contíguos de números inteiros não negativos são considerados nas comparações.
numericOrdering
não suporta:+
-
expoentes
Somente pontos de código Unicode na categoria Número ou Dígito Decimal (Nd) são tratados como dígitos.
Se o comprimento do número exceder 254 caracteres, o excesso de caracteres será tratado como um número separado.
Exemplo
Considere uma coleta com o seguinte número de string e valores decimais:
[ { "n": "1" }, { "n": "2" }, { "n": "-2.1" }, { "n": "2.0" }, { "n": "2.20" }, { "n": "10"}, { "n": "20" }, { "n": "20.1" }, { "n": "-10" }, { "n": "3" } ]
A consulta de localização a seguir usa um documento de agrupamento contendo o parâmetro numericOrdering
:
db.c.find( { }, { _id: 0 } ).sort( { n: 1 } ).collation( { locale: 'en_US', numericOrdering: true } )
Para obter mais informações sobre como consultar documentos no Compass, consulte Consultar seus dados.
As operações retornam os seguintes resultados:
[ { "n": "-2.1" }, { "n": "-10" }, { "n": "1" }, { "n": "2" }, { "n": "2.0" } { "n": "2.20" }, { "n": "3" }, { "n": "10" }, { "n": "20" }, {"n": "20.1" } ]
numericOrdering: true
ordenar os valores da string em ordem crescente como se fossem valores numéricos.Os dois valores negativos
-2.1
e-10
não são classificados na ordem de classificação esperada porque têm-
caracteres não suportados.