Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

cursor.collation()

Nesta página

  • Definição
  • Exemplos
cursor.collation(<collation document>)

Importante

Método mongosh

Esta página documenta um método mongosh. Esta não é a documentação de um driver de idioma específico, como Node.js.

Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.

Especifica oagrupamento para o cursor retornado pelo db.collection.find(). Para usar, acrescente ao db.collection.find().

O cursor.collation() aceita o seguinte documento de agrupamento:

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

Ao especificar agrupamento, o campo locale é obrigatório; todos os outros campos de agrupamento são opcionais. Para obter descrições dos campos, consulte Documento de agrupamento.

Campo
Tipo
Descrição
locale
string

O local da UTI. Consulte Idiomas e localidades compatíveis para obter uma lista das localidades suportadas.

Para especificar uma comparação binária simples, especifique locale valor de "simple".

strength
inteiro

Opcional. O nível de comparação a ser executado. Corresponde aos níveis de comparação da UTI. Os valores possíveis são:

Valor
Descrição
1
Nível primário de comparação. O agrupamento realiza comparação apenas dos caracteres básicos, ignorando outras diferenças, como diacríticos, maiúsculas e minúsculas.
2
Nível secundário de comparação. O agrupamento realiza comparações até diferenças secundárias, como diacríticos. Ou seja, o agrupamento realiza comparações de caracteres básicos (diferenças primárias) e sinais diacríticos (diferenças secundárias). As diferenças entre caracteres básicos têm precedência sobre diferença secundária.
3

Nível terciário de comparação. O agrupamento realiza comparações até diferenças terciárias, como variantes de maiúsculas e minúsculas. Ou seja, o agrupamento realiza comparações de caracteres básicos (diferenças primárias), diacríticos (diferenças secundárias) e caso e variantes (diferenças terciárias). Diferenças entre caracteres básicos tem precedência sobre diferenças secundárias, que tem precedência sobre as diferenças terciárias.

Este é o nível padrão.

4
Nível quaternário. Limitado para casos de uso específicos para considerar a pontuação quando os níveis 1-3 ignoram a pontuação ou para processar texto em japonês.
5
Nível idêntico. Limitado para casos de uso específicos do disjuntor tie .

Consulte Agrupamento de ICU: Níveis de Comparação para obter detalhes.

caseLevel
booleano

Opcional. Sinalizador que determina se a comparação de caso deve ser incluída no nível strength 1 ou 2.

Se true, inclua comparação de caso; isto é,

  • Quando usado com strength:1, o agrupamento compara caracteres básicos e maiúsculas e minúsculas.

  • Quando usado com strength:2, o agrupamento compara caracteres básicos, diacríticos (e outras possíveis diferenças secundárias) e maiúsculas e minúsculas.

Se false, não inclua comparação de caso no nível 1 ou 2. O padrão é false.

Para obter mais informações, consulte Agrupamento do ICU: nível de caso.

caseFirst
string

Opcional. Um campo que determina a ordem de classificação das diferenças entre maiúsculas e minúsculas durante comparações de nível terciário.

Os valores possíveis são:

Valor
Descrição
"superior"
As maiúsculas são classificadas antes das minúsculas.
"inferior"
As minúsculas são classificadas antes das maiúsculas.
"OFF"
Valor padrão. Semelhante a "lower" com pequenas diferenças. Consulte a página https://unicode-org.github.io/icu/userguide/strings/properties.html#customization para ver um detalhamento das diferenças.
numericOrdering
booleano

Opcional. Sinalizador que determina se as strings numéricas devem ser comparadas como números ou como strings.

Se true, compare como números; ou seja, "10" é maior que "2".

Se false, compare como strings; ou seja, "10" é menor que "2".

O padrão é false.

alternate
string

Opcional. Campo que determina se o agrupamento deve considerar espaços em branco e pontuação como caracteres base para fins de comparação.

Os valores possíveis são:

Valor
Descrição
"non-ignorable"
Espaço em branco e pontuação são considerados caracteres básicos.
"shifted"
Espaço em branco e pontuação não são considerados caracteres base e só se distinguem em níveis de força superiores a 3.

Consulte Agrupamento de ICU: Níveis de Comparação para obter mais informações.

O padrão é "non-ignorable".

maxVariable
string

Opcional. Campo que determina até quais caracteres são considerados ignoráveis quando alternate: "shifted". Não tem efeito se alternate: "non-ignorable"

Os valores possíveis são:

Valor
Descrição
"punct"
Tanto os espaços em branco quanto a pontuação são "ignoráveis", ou seja, não são considerados caracteres básicos.
"space"
Os espaços em branco são "ignoráveis", ou seja, não são considerados caracteres básicos.
backwards
booleano

Opcional. Bandeira que determina se as cadeias com sinais diacríticos são classificadas de trás da string, como com alguns pedidos no dicionário francês.

Se true, compare de trás para frente.

Se false, compare de frente para trás.

O valor padrão é false.

normalization
booleano

Opcional. Sinalizador que determina se é necessário verificar se o texto requer normalização e para realizar a normalização. Geralmente, a maioria dos textos não exige esse processamento de normalização.

Se true, verifique se está totalmente normalizado e realize normalização para comparar o texto.

Se false, não verifica.

O valor padrão é false.

Consulte https://unicode-org.github.io/icu/userguide/collation/concepts.html#normalization para obter detalhes.

Considere uma coleção foo com os seguintes documentos:

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "á" }

A seguinte operação especifica um filtro de query de x: "a". A operação também inclui uma opção de agrupamento com locale: "en_US" (localidade em inglês dos EUA) e strength: 1 (comparar somente caracteres básicos; ou seja, ignorar maiúsculas e minúsculas e diacríticos):

db.foo.find( { x: "a" } ).collation( { locale: "en_US", strength: 1 } )

A operação retorna os seguintes documentos:

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "á" }

Se você não especificar o agrupamento, ou seja, db.collection.find( { x: "a" } ), a query corresponderá somente ao seguinte documento:

db.foo.find( { x: "a" } )

Você pode encadear outros métodos de cursor, como cursor.sort() e cursor.count(), a cursor.collation():

db.collection.find({...}).collation({...}).sort({...});
db.collection.find({...}).collation({...}).count();

Observação

Você não pode especificar vários agrupamentos para uma operação. Por exemplo, você não pode especificar agrupamentos diferentes por campo ou, se estiver realizando uma busca com uma classificação, não poderá usar um agrupamento para a busca e outro para a classificação.

← cursor.isClosed()

Nesta página