Menu Docs
Página inicial do Docs
/ /

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

A storedSource opção em uma definição de índice do MongoDB Search especifica os campos no documento de origem que o MongoDB Search 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 do MongoDB Search no MongoDB Search.

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 obtém umvalor booleano ou um objeto na definição de í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.

Isto não é suportado se a definição de índice contiver campo de tipo de vetor. Em vez disso, utilize include para especificar os campos para armazenar em mongot ou utilize exclude para excluir o vector campo do tipo 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 que contém os nomes dos campo ou caminhos separados por pontos para os campos a serem excluídos do armazenamento. Se especificado, o MongoDB Search armazena documentos originais, exceto os campos listados aqui. Se a definição de índice contiver um campo do vetor de tipo, você deverá excluir o vector campo de tipo 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,
}
)

Voltar

vetor

Nesta página