Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Definir los campos fuente almacenados en el índice de MongoDB Search

La storedSource opción en una búsqueda de MongoDB La definición de índice especifica los campos del documento de origen que MongoDB Search debe almacenar. Puede configurar storedSource para mejorar el rendimiento de las queries en ciertos casos de uso, ya que reduce la necesidad de una búsqueda implícita en la base de datos de backend durante el tiempo de query. Puede almacenar campos de todos los Tipos de campo de MongoDB Search en MongoDB Search.

MongoDB Search no indexa los campos almacenados, por lo que debes indexar los campos por separado para poder ejecutar consultas sobre ellos. También puedes recuperar los campos almacenados en tiempo de query utilizando la opción returnStoredSource.

Nota

storedSource solo está disponible en clústeres que ejecutan MongoDB 7.0+.

Para aprender más sobre cómo recuperar los campos almacenados, consulta Devolver campos fuente almacenados.

La storedSource opción tiene la siguiente sintaxis en una definición de índice:

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

La opción storedSource toma un valor booleano o un objeto en la definición del índice.

Valor
Descripción

true

Especifica que MongoDB Search debe almacenar todos los campos de los documentos. Almacenar documentos completos puede afectar significativamente el rendimiento durante la indexación y la consulta. Para obtener más información, consulta Almacenando campos de origen.

No está soportado si la definición del índice contiene un campo de tipo vector. En su lugar, utiliza include para especificar los campos que se almacenarán en mongot o utiliza exclude para excluir el campo de tipo vector del almacenamiento.

false

Especifica que MongoDB Search no debe almacenar el documento fuente original. Este es el valor predeterminado para la opción storedSource.

El objeto de opción storedSource debe contener uno de los siguientes campos:

Campo
Tipo
Descripción

include

Arreglo de cadenas

Lista que contiene los nombres de los campos o rutas separadas por puntos de los campos que se van a almacenar. Además de los campos especificados, MongoDB Search almacena _id también por defecto.

exclude

Arreglo de cadenas

Lista que contiene los nombres de campo o las rutas de acceso a los campos, separadas por puntos, que se excluirán del almacenamiento. Si se especifica, MongoDB Search almacena los documentos originales, excepto los campos enumerados aquí. Si la definición del índice contiene un campo de tipo vector, debe excluir el vector campo de tipo del almacenamiento.

Los siguientes ejemplos de índices utilizan los campos en la colección sample_mflix.movies para demostrar cómo configurar los campos para almacenar en MongoDB Search utilizando la opción storedSource. Puedes usar mongosh, el Editor Visual de Atlas UI o el Editor JSON de Atlas UI para configurar los índices.


➤ Utiliza el menú desplegable Selecciona tu lenguaje para configurar la interfaz del procedimiento en esta página.


El siguiente ejemplo almacena solo los campos title y awards.wins en los documentos de la colección. Después de seleccionar tu método de configuración preferido, selecciona la colección movies en la base de datos sample_mflix.

  1. Haga clic Refine Your Index para configurar su índice.

  2. En la sección Stored Source Fields, haga clic en Specified.

  3. Seleccione awards.wins en el menú desplegable de la columna Field Name y haga clic en Add.

  4. Haz clic en Add Field para especificar otro campo donde almacenar.

  5. Seleccione title en el menú desplegable de la columna Field Name y haga clic en Add.

  6. Haga clic en Save Changes.

Agrega las líneas 5 a 10 del siguiente ejemplo a la definición del índice para almacenar los campos especificados en MongoDB Search. El ejemplo utiliza la notación de punto para especificar campos anidados.

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

El siguiente ejemplo almacena todos los campos excepto directors y imdb.rating en los documentos de la colección. Después de seleccionar el método de configuración preferido, seleccione la colección movies bajo la base de datos sample_mflix.

  1. Se debe hacer clic en Refine Your Index para configurar el índice.

  2. En la sección Stored Source Fields, haga clic en All Except Specified.

  3. Seleccione directors en el menú desplegable de la columna Field Name y haga clic en Add.

  4. Haga clic en Add Field para especificar otro campo para excluir.

  5. Seleccione imdb.rating en el menú desplegable de la columna Field Name y haga clic en Add.

  6. Haga clic en Save Changes.

Agrega las líneas 5 a 10 del siguiente ejemplo a la definición del índice para excluir los campos especificados. El ejemplo utiliza la notación de puntos para especificar campos anidados.

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

El siguiente ejemplo almacena todos los campos de los documentos en la colección. Después de seleccionar el método de configuración preferido, selecciona la colección movies en la base de datos sample_mflix.

  1. Se debe hacer clic en Refine Your Index para configurar el índice.

  2. En la sección Stored Source Fields, haga clic en All.

  3. Haga clic en Save Changes.

Agregue la línea 5 del siguiente ejemplo a la definición de índice para almacenar todos los campos.

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

El siguiente ejemplo para el namespace sample_mflix.movies almacena sólo los campos title y awards.wins en los documentos de mongot:

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

El siguiente ejemplo para el namespace sample_mflix.movies almacena todos los campos excepto directors y imdb.rating en los documentos.

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

El siguiente ejemplo para el namespace sample_mflix.movies almacena todos los campos en los documentos de la colección.

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

Volver

vector

En esta página