Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Cómo indexar los elementos de un arreglo

Para la indexación de arreglos, MongoDB Search solo requiere el tipo de dato de los elementos del arreglo. No es necesario especificar que los datos están contenidos en un arreglo ([]) en la definición del índice.

Si habilitas mapeos dinámicos, MongoDB Search indexa automáticamente elementos de tipos de datos dinámicamente indexables dentro del arreglo. Para obtener más información sobre los tipos de datos que MongoDB Search indexa dinámicamente, consulta Tipos de campos de MongoDB Search.

Puedes utilizar el Editor Visual o el Editor JSON de la Interfaz de Usuario de Atlas para definir el índice de los elementos de los arreglos.

MongoDB Search indexa los tipos de datos compatibles dentro de un arreglo aplanando los campos durante la indexación.

Ejemplo

Considera los siguientes documentos:

doc1 = { a: {b: [[<value1>, <value2>], <value3>] }}
doc2 = { a: {b: [<value1>, <value2>, <value3>] } }
doc3 = { a: [{ b: <value1>}, {b: <value2>}, {b: <value3>}] }

MongoDB Search aplana los arreglos anteriores de manera similar a lo siguiente durante la indexación:

LuceneDoc<n> = {"a.b":[<value1>,<value2>,<value3>]}

Para consultar campos dentro de un arreglo de documentos u objetos, es necesario utilizar el tipo de embeddedDocuments para indexar el campo que contiene el conjunto de objetos.

Para definir el índice de los elementos del arreglo, elige tu método de configuración preferido en la Interfaz de Usuario de Atlas y luego selecciona la base de datos y la colección.

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

  2. En la sección Field Mappings, haz clic en Add Field Mapping para abrir la ventana Add Field Mapping.

  3. Haga clic en Customized Configuration.

  4. Seleccione el campo de tipo arreglo que desea indexar en el menú desplegable Field Name.

  5. Haz clic en el desplegable Data Type y selecciona el tipo de dato del elemento del arreglo que deseas indexar. Para aprender a configurar las propiedades para el tipo seleccionado, consulta la documentación para el tipo seleccionado.

  6. Haga clic en Add.

La siguiente es la sintaxis JSON para indexar elementos dentro de un arreglo. Reemplace la definición de índice por defecto por la siguiente.

1{
2 "mappings": {
3 "dynamic": true|false,
4 "fields": {
5 "<array-field-name>": {
6 "type": "<array-element-data-type>"
7 }
8 }
9 }
10}

El siguiente ejemplo de definición de índice utiliza la colección sample_mflix.movies. Si ya tienes los datos de muestra cargados en tu clúster, puedes utilizar el Editor Visual o el Editor JSON en la Interfaz de Usuario de Atlas para configurar el índice. Después de seleccionar tu método de configuración preferido, selecciona la base de datos y la colección, y ajusta tu índice para agregar mapeos de campos.

La siguiente definición de índice indexa el campo genres, que contiene un arreglo de valores de string.

  1. En la ventana Add Field Mapping, selecciona genres del menú desplegable Field Name.

  2. Haz clic en el desplegable Data Type y selecciona String.

  3. Mantén la configuración predeterminada para el String Properties.

  4. Haga clic en Add.

Reemplazar la definición predeterminada del índice con la siguiente definición del índice.

1{
2 "mappings": {
3 "fields": {
4 "genres": {
5 "type": "string"
6 }
7 }
8 }
9}