Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Ordem de comparação/classificação

Ao comparar valores de diferentes tipos de BSON em operações de ordenação, o MongoDB usa a seguinte ordem de comparação, da menor para a maior:

  1. MinKey (tipo interno)

  2. Zero

  3. Números (inteiros, longos, doubles, decimais)

  4. Símbolo, string

  5. Objeto

  6. Array

  7. BinData

  8. ObjectId

  9. Boolean

  10. Data

  11. Timestamp

  12. Expressão regular

  13. Código JavaScript

  14. JavaScript code with scope

  15. MaxKey (tipo interno)

Expressões de aggregation fazem comparações entre tipos. Para obter mais informações, consulte Operadores de comparação.

Observação

O MongoDB impõe comparações com Operadores de Predicados de Consulta de Comparação somente em documentos em que o tipo BSON do campo de destino corresponde ao tipo de operando de consulta por meio de colchetes de tipo.

O MongoDB trata alguns tipos como equivalentes para fins de comparação. Por exemplo, todos os tipos numéricos são considerados equivalentes em comparações.

Por padrão, o MongoDB usa a comparação binária simples para comparar linhas.

A colocação permite que os usuários especifiquem regras específicas do idioma para comparação de strings, como regras para letras maiúsculas e marcas de acento.

A especificação de correlação tem a seguinte sintaxe:

{
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.

Se nenhum agrupamento for especificado para a coleção ou para as operações, o MongoDB usa a comparação binária simples usada nas versões anteriores para comparações de strings.

Ao classificar em um campo que contém um array:

  • Uma classificação ascendente compara os menores elementos da array de acordo com a ordem de classificação do tipo de BSON.

  • Uma classificação decrescente compara os maiores elementos da array de acordo com a ordem de classificação inversa do tipo BSON.

  • Uma classificação em um campo cujo valor é um array de um elemento (por exemplo, [ 1 ]) e um campo cujo valor não é um array (por exemplo, 2) classifica em 1 e 2.

  • Uma classificação coloca uma array vazia (por exemplo, [ ]) antes de um valor de null ou um valor de campo ausente.

  • Um tipo de array aninhado (por exemplo, [[1, 2], [3, 4]]) classifica qualquer array após a array mais externa lexicograficamente.

Ao consultar um campo que contém um array:

A comparação do MongoDB de objetos BSON usa a seguinte ordem:

  1. Compare recursivamente os pares de valores-chave na ordem em que aparecem no objeto BSON.

  2. Compare os tipos de campo. O MongoDB utiliza a seguinte ordem de comparação para tipos de campo, do mais baixo para o mais alto:

    1. MinKey (tipo interno)

    2. Zero

    3. Números (inteiros, longos, doubles, decimais)

    4. Símbolo, string

    5. Objeto

    6. Array

    7. BinData

    8. ObjectId

    9. Boolean

    10. Data

    11. Timestamp

    12. Expressão regular

    13. Código JavaScript

    14. JavaScript code with scope

    15. MaxKey (tipo interno)

  3. Se os tipos de campo forem iguais, compare os nomes dos campos principais.

  4. Se os nomes dos campos-chave forem iguais, compare os valores dos campos.

  5. Se os valores de campo forem iguais, compare o próximo par chave/valor (retornar à etapa 1). Um objeto sem pares adicionais é menor que um objeto com pares adicionais.

Os objetos data são classificados antes dos objetos de Registro de data e hora.

A comparação trata um campo inexistente como se fosse nulo. Uma classificação no campo a em documentos { } e { a: null } trataria os documentos como equivalentes em ordem de classificação.

O MongoDB classifica BinData na seguinte ordem:

  1. Primeiro, o comprimento ou tamanho dos dados.

  2. Em seguida, pelo subtipo de um byte BSON.

  3. Finalmente, pelos dados, realizando uma comparação byte-by-byte em bytes não assinados.