Docs Menu
Docs Home
/ /

Documentos incrustados

Uso el Embedded Documents Regla de mapeo para desnormalizar una relación de clave externa. Con Embedded Documents se pueden anidar campos de clave externa secundarios en una colección principal.

Tiene dos opciones principales al desnormalizar sus datos relacionales con la opción Embedded Documents:

  • Puede incrustar los documentos secundarios en el documento principal y designar un Prefix y un Field name.

  • Puede fusionarse con el padre, que representa las filas como campos en el nivel padre.

La regla de mapeo Embedded Documents es una opción avanzada. Debe añadirse explícitamente a un modelo de mapeo.

  • La regla de mapeo Embedded Documents está disponible si la tabla relacional desde la cual se está mapeando está en un lado de la relación de clave externa.

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

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

    Esto hace que se abra el panel Mappings a la derecha de la pantalla.

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

  2. Seleccione Embedded documents en Migrate table as.

3
  1. Seleccione el nombre de 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

Permite seleccionar la clave externa que se incrustará cuando exista 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 que desea incrustar en el menú desplegable Foreign key link.

5
  1. Fusione filas de la tabla como campos en el nivel de colección principal haciendo clic en el ícono junto al nombre del campo.

6

Le permite incluir explícitamente filas donde una expresión retorna trueEsto 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 Mappings panel, haga clic en el icono junto Advanced settings a.

  2. Seleccione el icono.Add mapping rule filter

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

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

    • Cambiar 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 Documents.

En este ejemplo:

  • Se aplica una regla de mapeo Embedded Documents a la tabla Order.

  • La tabla OrderLine tiene dos filas y la tabla Order tiene una fila.

  • La colección principal está establecida en OrderLine.

  • Merge fields into the parent no está seleccionado

  • El Field name se establece en order.

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

OrderLine mesa:

OrderLineID
ID de pedido
ProductID
Cantidad

1

1

1

1

4

1

3

1

Order mesa:

ID de pedido
ID de cliente
Monto total
OrderStatusID

1

1

550.00

1

Los documentos de la colección OrderLine ahora tienen los detalles Order incrustados como un documento incrustado llamado Orders.

{
ObjectID: {
OrderLineID: 1,
},
OrderID: 1,
ProductID: 1,
Quantity: 1,
Orders: {
OrderID: 1,
CustomerID: 1,
TotalAmount: 550,
OrderStatusID: 1,
},
},
{
ObjectID: {
OrderLineID: 4,
},
OrderID: 1,
ProductID: 3,
Quantity: 1,
Orders: {
OrderID: 1,
CustomerID: 1,
TotalAmount: 550,
OrderStatusID: 1,
},
}

En este ejemplo:

  • La tabla OrderLine tiene cuatro filas y la tabla Order tiene tres filas.

  • Se aplica una regla de mapeo Embedded Documents a la tabla Order.

  • La colección principal está establecida en OrderLine.

  • Merge fields into the parent está seleccionado

  • El Prefix se establece en (root).

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

OrderLine mesa:

OrderLineID
ID de pedido
ProductID
Cantidad

1

1

1

1

2

2

2

1

3

3

3

1

4

1

3

1

Order mesa:

ID de pedido
ID de cliente
Monto total
OrderStatusID

1

1

550.00

1

2

2

100.00

2

3

3

500.00

3

Los documentos de la colección OrderLine tienen los detalles Order fusionados en el documento principal como campos.

{
_id: {
orderLineId: 1,
},
orderId: 1,
productId: 1,
quantity: 1,
customerId: 1,
orderStatusId: 1,
totalAmount: 550,
},
{
_id: {
orderLineId: 2,
},
orderId: 2,
productId: 2,
quantity: 1,
customerId: 2,
orderStatusId: 2,
totalAmount: 100,
},
{
_id: {
orderLineId: 3,
},
orderId: 3,
productId: 3,
quantity: 1,
customerId: 3,
orderStatusId: 3,
totalAmount: 500,
},
{
_id: {
orderLineId: 4,
},
orderId: 1,
productId: 3,
quantity: 1,
customerId: 1,
orderStatusId: 1,
totalAmount: 550,
}

Volver

Arreglo incrustado

En esta página