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

$meta (operador de expressão )

$meta

Retorna os metadados associados a um documento, por exemplo, "textScore" ao executar pesquisa de texto.

A $meta expression has the following syntax:

{ $meta: <metaDataKeyword> }

The $meta expression can specify the following values as the <metaDataKeyword>:

Keyword
Descrição

"textScore"

Retorna a pontuação associada à query $text correspondente a cada documento correspondente. A pontuação de texto indica quão bem o documento correspondeu ao termo ou termos de pesquisa.

{ $meta: "textScore" } deve ser usado em conjunto com uma query $text.

Em versões anteriores, se não usado em conjunto com uma consulta $text, retornará uma pontuação nula.

"indexKey"

Retorna uma chave de índice para o documento se um índice não texto for usado. A expressão { $meta: "indexKey" } é somente para fins de depuração e não para lógica de aplicativo, e é preferida em comparação com cursor.returnKey().

MongoDB Search provides additional $meta keywords, such as:

Consulte a documentação do MongoDB Search para obter detalhes.

Importante

As seguintes palavras-chave $meta não são aceitas na API Estável V1:

  • "textScore"

  • "indexKey"

  • "score"

  • "searchScore"

  • "scoreDetails"

  • "searchHighlights"

  • "searchSequenceToken"

  • "searchScoreDetails"

  • "vectorSearchScore"

  • "searchRootDocumentId"

You can use searchScore only in $search queries and vectorSearchScore only in $vectorSearch queries. If you use searchScore and vectorSearchScore in any other query, that query will fail.

You can use searchRootDocumentId only in $search queries with returnScope.

  • A expressão { $meta: "textScore" } deve ser usada em conjunto com $text. Por exemplo:

    • Na agregação, você deve especificar um estágio $match com uma query $text no pipeline para usar a expressão { $meta: "textScore" } nos estágios posteriores. Se você não especificar a query $text no estágio $match, a operação falhará.

    • No achado, você deve especificar o operador $text no predicado de query para usar { $meta: "textScore" }. Se você não especificar o operador $text no predicado da consulta, a operação falhará.

    Observação

    $text fornece recursos de query de texto para sistemas autogerenciados (não Atlas). Para dados hospedados no MongoDB, o MongoDB também oferece uma solução de query de texto completo aprimorada, MongoDB Search.

  • Na aggregation, a expressão { $meta: "textScore" } pode ser incluída em vários estágios que aceitam expressões de aggregation, como $project, $group $sort etc.

  • No achado, a expressão { $meta: "textScore" } pode ser incluída na projeção e em sort().

  • A expressão { $meta: "textScore" } pode fazer parte do documento de projeção para incluir os metadados de pontuação de texto.

  • The $meta expression can be present in either an inclusion or an exclusion projection.

  • Se você definir a expressão para um nome de campo que já existe no documento, o valor de metadados projetado substituirá o valor existente.

  • Na agregação, após um estágio que gera um campo com o valor da pontuação de texto, você poderá especificar uma condição de query ou operar no campo em estágios subsequentes. Por exemplo, veja $text no pipeline de agregação

  • No achado, você não pode especificar uma condição de query na pontuação de texto. Em vez disso, use aggregation.

  • A expressão { $meta: "textScore" } pode ser usada como parte de uma operação de classificação para classificar por metadados da pontuação de texto; ou seja,

    • Na aggregation, $sort estágio.

    • No achado, método sort().

  • Os metadados "textScore" são classificados em ordem decrescente.

  • Para usar em uma operação de classificação, defina a expressão { $meta: "textScore" } como um nome de campo arbitrário. O nome do campo é desconsiderado pelo sistema de query.

  • Na aggregation, você pode classificar os documentos resultantes por { $meta: "textScore" } sem também ter que projetar o textScore.

  • Na operação find, você pode ordenar os documentos resultantes por { $meta: "textScore" } sem precisar projetar também o textScore.

  • In aggregation, if you include the { $meta: "textScore" } expression in both the projection and sort, the projection and sort can have different field names for the expression. The field name in the sort is disregarded by the query system.

  • In find, if you include the { $meta: "textScore" } expression in both the projection and sort, the projection and sort can have different field names for the expression. The field name in the sort is disregarded by the query system.

  • A expressão { $meta: "indexKey" } serve apenas para fins de depuração e não para lógica de aplicativo.

  • A expressão { $meta: "indexKey" } é preferível a cursor.returnKey().

  • No aggregation, a expressão { $meta: "indexKey" } pode ser incluída em vários estágios que aceitam expressões de aggregation, como $project, $group $sortByCount etc., mas não $sort. No entanto, com um aggregation pipeline, você pode primeiro projetar a expressão { $meta: "indexKey" } (como em um $project, $addFields etc.) e, em seguida, classificar por esse campo em um estágio $sort subsequente.

  • No achado, a expressão { $meta: "indexKey" } só está disponível como parte do documento de projeção .

  • O valor retornado depende de como o banco de dados decide representar valores em um índice e pode mudar entre versões. O valor representado pode não ser o valor real do campo.

  • O valor retornado depende do plano de execução escolhido pelo sistema. Por exemplo, se houver dois índices possíveis que podem ser usados para responder à query, o valor dos metadados "indexKey" dependerá de qual índice for selecionado.

  • Se um índice não for utilizado, a expressão { $meta: "indexKey" } não retornará um valor e o campo não será incluído como parte da saída.

Avalie esta página