For AI agents: a documentation index is available at https://www.mongodb.com/pt-br/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Defina campos de origem armazenados em seu índice de pesquisa MongoDB

A opção storedSource em um índice de pesquisa do MongoDB pesquisa especifica os campos no documento de origem que o MongoDB pesquisa deve armazenar. Você pode configurar o storedSource para melhorar o desempenho da query em determinados casos de uso, pois reduz a necessidade de pesquisa implícita de tempo de query no banco de dados de backend. Você pode armazenar campos de todos os Tipos de Campo de Pesquisa do MongoDB na Pesquisa do MongoDB.

O MongoDB Search não indexa campos armazenados, então você deve indexar os campos separadamente para executar queries neles. Você também pode recuperar campos armazenados no momento da query usando a opção returnStoredSource.

Observação

storedSource está disponível apenas em clusters que executam o MongoDB 7.0+.

Para saber mais sobre como recuperar os campos armazenados, consulte Retornar campos de origem armazenados.

A opção storedSource tem a seguinte sintaxe em uma definição de índice:

Sintaxe
1{
2 "storedSource": true | false | {
3 "include" | "exclude": [
4 "<field-name>",
5 ...
6 ]
7 }
8}

A opção storedSource usa um valor booleano ou um objeto na definição do índice.

Valor
Descrição

true

Especifica que a MongoDB Search deve armazenar todos os campos nos documentos. Armazenar documentos completos pode impacto significativamente o desempenho durante a indexação e a query. Para saber mais, consulte Armazenar campos de origem.

Isso não é aceito se a definição do índice contiver um campo do tipo vetor. Em vez disso, use include para especificar os campos a serem armazenados em mongot ou use exclude para excluir o campo do tipo vector do armazenamento.

false

Especifica que o MongoDB Search não deve armazenar o documento de origem original. Este é o valor padrão para a opção storedSource.

O objeto de opção storedSource deve conter um dos seguintes campos:

Campo
Tipo
Descrição

include

array de strings

Lista que contém os nomes dos campo ou caminhos separados por pontos para campos a serem armazenados. Além dos campos especificados, o MongoDB Search armazena _id também por padrão.

exclude

array de strings

Lista com os nomes de campo ou caminhos separados por ponto para os campos a serem excluídos de serem armazenados. Se especificado, o MongoDB Search armazena documentos originais, exceto os campos listados aqui. Se a definição do índice contiver um campo do tipo vetor, você deverá excluir o campo do tipo vector do armazenamento.

Os exemplos de índice seguintes utilizam os campos na coleção sample_mflix.movies para demonstrar como configurar os campos para armazenar no MongoDB Search utilizando a opção storedSource. Você pode usar mongosh, o Atlas UI Visual Editor ou o Atlas UI JSON Editor para configurar os índices.


➤ Use o menu suspenso Selecione seu idioma para definir a interface para o procedimento nesta página.


O exemplo seguinte armazena somente os campos title e awards.wins nos documentos na collection. Após selecionar seu método de configuração preferido, selecione a collection movies sob o reconhecimento de data center sample_mflix.

  1. Clique em Refine Your Index para configurar seu índice.

  2. Na seção Stored Source Fields, clique em Specified.

  3. Selecione awards.wins no menu suspenso na coluna Field Name e clique em Add.

  4. Clique em Add Field para especificar outro campo para armazenar.

  5. Selecione title no menu suspenso na coluna Field Name e clique em Add.

  6. Clique em Save Changes.

Acrescente as linhas 5 a 10 do exemplo a seguir à definição do índice para armazenar os campos especificados na MongoDB Search. O exemplo utiliza a notação de ponto para especificar campos aninhados.

1{
2 "mappings": {
3 "dynamic": true,
4 },
5 "storedSource": {
6 "include": [
7 "title",
8 "awards.wins"
9 ]
10 }
11}

O exemplo a seguir armazena todos os campos exceto directors e imdb.rating nos documentos na coleção. Após selecionar seu método de configuração preferido, selecione a movies coleção sample_mflix .

  1. Clique em Refine Your Index para configurar seu índice.

  2. Na seção Stored Source Fields, clique em All Except Specified.

  3. Selecione directors no menu suspenso na coluna Field Name e clique em Add.

  4. Clique em Add Field para especificar outro campo a ser excluído.

  5. Selecione imdb.rating no menu suspenso na coluna Field Name e clique em Add.

  6. Clique em Save Changes.

Anexe as linhas 5 a 10 do exemplo a seguir à definição do índice para excluir os campos especificados. O exemplo utiliza a notação de ponto para especificar campos aninhados.

1{
2 "mappings": {
3 "dynamic": true,
4 },
5 "storedSource": {
6 "exclude": [
7 "directors",
8 "imdb.rating"
9 ]
10 }
11}

O exemplo a seguir armazena todos os campos nos documentos da collection. Após selecionar seu método de configuração preferido, selecione a coleção movies no banco de dados sample_mflix .

  1. Clique em Refine Your Index para configurar seu índice.

  2. Na seção Stored Source Fields, clique em All.

  3. Clique em Save Changes.

Anexe a linha 5 do exemplo a seguir à definição do índice para armazenar todos os campos.

1{
2 "mappings": {
3 "dynamic": true,
4 },
5 "storedSource": true,
6}

O exemplo a seguir para o namespace sample_mflix.movies armazena somente os campos title e awards.wins nos documentos em mongot:

db.movies.createSearchIndex(
"default",
"definition": {
"mappings": {
"dynamic": true,
},
"storedSource": {
"include": [
"title",
"awards.wins"
]
}
}
)

O exemplo a seguir para o namespace sample_mflix.movies armazena todos os campos, exceto directors e imdb.rating nos documentos.

db.movies.createSearchIndex(
"default",
"definition": {
"mappings": {
"dynamic": true,
},
"storedSource": {
"exclude": [
"directors",
"imdb.rating"
]
}
}
)

O exemplo a seguir para o namespace sample_mflix.movies armazena todos os campos nos documentos na coleção.

db.movies.createSearchIndex(
"default",
"definition": {
"mappings": {
"dynamic": true,
},
"storedSource": true,
}
)