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
/ /

Arreglo incrustado

Usa el Embedded array Regla de mapeo para insertar los valores de la tabla secundaria como elementos de matriz en los documentos de la colección mapeada a la tabla principal. La regla de mapeo Embedded array es una opción avanzada. Debe añadirse explícitamente a un modelo de mapeo.

  • La regla de mapeo Embedded array está disponible si la tabla relacional desde la cual se está mapeando está en el lado múltiple de la relación de clave externa.

  • La tabla que contiene la clave primaria también debe asignarse a una colección en el modelo de MongoDB.

1
  1. En el panel izquierdo Schema model, haz clic en una colección bajo el encabezado MongoDB o Relational.

    Esto activa el panel Mappings para abrirse en la parte derecha de la pantalla.

2
  1. Desde la pantalla Mapping, haz clic en + Add para crear una nueva regla de mapeo o haz clic en el icono para editar una regla existente.

  2. Seleccione Embedded array en Migrate table as.

3
  1. Seleccione el nombre del Source table o Parent collection del menú desplegable.

  2. Configura la ruta raíz:

    • Prefix:: Especifica la jerarquía de reglas.

    • Field name: Especifica el campo que contiene el arreglo o documento incrustado.

4

Te permite seleccionar cuál clave externa incrustar cuando hay más de una clave externa entre dos tablas. Esta opción solo aparece para tablas o colecciones con múltiples enlaces de clave externa.

  1. Seleccione el nombre de la clave externa para incrustar desde el menú desplegable Foreign key link.

5

Le permite incluir explícitamente filas donde una expresión retorna true. Esto difiere de Filtros de tabla: filtran según una consulta SQL y se aplican a todas las filas de una tabla específica. Los filtros de reglas de mapeo solo se aplican a un mapeo específico.

  1. En el panel Mappings, haz clic en el ícono junto a Advanced settings.

  2. Seleccione el icono Add mapping rule filter .

  3. Introduce una expresión de filtro JavaScript válida en el cuadro de texto Value expression.

6

Permite ordenar una matriz incrustada y limitar su número. Puede aplicar solo una ordenación, solo un límite o ambos. Al limitar a una sola entrada, existe la opción de incrustar como documento en lugar de una matriz de un solo elemento Create an array of primitive values seleccionando.

  1. En el panel Mappings, haz clic en el ícono junto a Advanced settings.

  2. Seleccione el icono Add array conditions .

  3. Introduzca un filtro en el cuadro de texto Value expression.

  4. En el encabezado Sort by and order, selecciona el campo de origen para ordenar y alternar entre para orden ascendente y para orden descendente.

  5. Selecciona una opción de Limit:

    • No limit: No limit

    • Limit number of rowsIntroduzca el número máximo de elementos que se devolverán en la matriz. El valor predeterminado es 10.

Nota

  • No se pueden ordenar los campos excluidos. Si un campo de ordenamiento previamente seleccionado se excluye en un momento posterior, se elimina la condición de arreglos.

7
  1. Defina las opciones para la nueva regla de mapeo. Al definir las opciones de la regla de mapeo, puede:

    • Cambia el nombre de la colección.

      Para cambiar el nombre de la colección, haz clic en el cuadro de texto Name e introduce el nuevo nombre. Haz clic fuera del cuadro de texto para guardar el cambio. Si el nombre ya está en uso, recibirás un error de validación.

    • Agregue campos calculados para crear nuevos campos basados ​​en columnas de origen relacionales.Consulte Campos calculados para obtener más información.

    • Cambiar los nombres de los campos.

    • Incluya o excluya un campo de su trabajo de migración haciendo clic en el ícono junto al nombre del campo.

8
  1. Haga clic en Save And Close.

Esta sección demuestra la entrada relacional y la salida de MongoDB de la regla de mapeo Embedded array.

En este ejemplo:

  • Se aplica una regla de mapeo Embedded Array a la tabla Customer.

  • Source table está configurado en Order.

  • Prefix está configurado en (root).

  • Field Name está configurado en orders.

Haga clic en las pestañas a continuación para ver la entrada y la salida de este ejemplo:

Customer tabla:

ID
Nombre
Dirección1
Dirección2
Dirección 3

1

Joelynn Fawthrop

86 Paso Dwight

Carregal

3800-854

Orders tabla:

OrderID
CustomerID
MontoTotal
OrderStatusID

1

1

50.00

1

4

1

500.00

3

El documento en la Customer colección ahora tiene los detalles Order incrustados como un campo de arreglo de objetos llamado Orders.

Todos los pedidos de los clientes ahora son visibles en la colección Customer como una matriz de documentos anidados.

{
"_id": { "CustomerID": 1 },
"Name": "Joelynn Fawthrop",
"Address1": "86 Dwight Pass",
"Address2": "Carregal",
"Address3": "3800-854",
"Orders":
[
{ "OrderID": 1,
"CustomerID": 1,
"TotalAmount": 50,
"OrderStatusID": 1
},
{ "OrderID": 4,
"CustomerID": 1,
"TotalAmount": 500,
"OrderStatusID": 1
}
]
}

Volver

Nuevos documentos

En esta página