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

Índice classificado

O MongoDB Search permite que você configure a classificação em seu índice para pré-classificar documentos em ordem crescente ou decrescente no momento do índice, em vez de classificar no momento da query. Isso é útil quando os conjuntos de resultados são muito grandes, tornando a classificação no momento da query lenta. Você pode usar a opção de índice sort com os seguintes tipos de campo do MongoDB Search:

  • boolean

  • date

  • number (valores inteiros, float e double)

  • objectId

  • token

  • uuid

Você também pode configurar como deseja que null ou os valores ausentes sejam classificados usando a opção noData.

A opção sort tem a seguinte sintaxe:

1{
2 "mappings": {
3 "dynamic": true|false,
4 "fields": {
5 "<field-name>": {
6 "type": "boolean" | "date" | "number" | "objectId" | "token" | "uuid"
7 }
8 }
9 },
10 "sort": { "<field-to-sort>": 1 | -1 } | { "<field-to-sort>": { "order": 1 | -1, "noData": "lowest" | "highest" } }
11}

Para usar um índice classificado, você deve:

  • Configure os campos usados para sort usando mapeamentos estáticos.

    • boolean

    • date

    • number (valores inteiros, float e double)

    • objectId

    • token (string values)

    • uuid

    O MongoDB Search suporta campos que você indexa como vários tipos para sort se pelo menos um dos tipos for um dos tipos suportados listados acima.

  • Para classificar em campos aninhados, configure todos os campos intermediários até o campo raiz como o tipo document.

Observação

Se você especificar a opção sort com campos que são indexados usando mapeamentos dinâmicos ou typeSet, a construção do índice falhará.

Um índice classificado ordena fisicamente os documentos do MongoDB Search durante as construções de índice usando a classificação de nível superior configurada em vez de classificar no momento da query. Isso melhora o desempenho de queries cuja especificação $search.sort corresponde à classificação do índice ou a um prefixo dela, especialmente ao classificar conjuntos de resultados muito grandes (como mais de um milhão de documentos nos resultados).

Use a saída explain para verificar se uma query usa a ordenação indexada. As query que se beneficiam da ordenação indexada incluem o campo usesIndexSort: true. Uma query se beneficia quando seus campos de ordenação correspondem à ordenação indexada ou a um prefixo da ordenação indexada.

Observação

Você não pode usar a metaexpressão searchScore como parte do índice classificado porque a pontuação é calculada apenas no momento da query.

Você pode classificar em campos de array. O MongoDB Search nivela o array e usa um valor representativo para comparação. Para classificação crescente, ele usa o menor valor no array e para classificação decrescente, ele usa o maior valor no array.

For mixed-type arrays, the sort order is based on the MongoDB BSON Comparison Order. For an ascending sort, MongoDB Search uses the element with the lowest BSON type. For a descending sort, MongoDB Search uses the element with the highest BSON type.

Você pode classificar em campos filho somente se todos os documentos pai estiverem definidos estaticamente como o tipo document .

As query que usam returnScope não se beneficiam do índice classificado porque a definição do índice classificado não oferece suporte ao tipo de campo embeddedDocuments no índice para classificação.

  • Índices com especificações sort podem ter construções de índice e replicação mais lentas.

  • Queries com $search.sort especificado como o inverso da ordenação indexada podem ser mais lentas em comparação com o uso de um índice não ordenado. Queries usando outras especificações $search.sort não serão afetadas.

  • O MongoDB Search suporta apenas uma especificação sort por índice. Se você quiser classificar em campos diferentes, escolha a ordem de classificação dominante como a classificação do índice.

Os exemplos a seguir criam um índice classificado nos campos da coleção sample_airbnb.listingsAndReviews.