Docs 菜单
Docs 主页
/
Relational Migrator
/ /

嵌入式数组

在此页面上

  • 关于此任务
  • 步骤
  • 例子

使用 Embedded array映射规则将子表的值作为大量元素插入映射到父表的集合中的文档下。 Embedded array映射规则是高级映射规则选项。 必须将其显式添加到映射模型中。

  • 如果Embedded array映射规则所映射的关系表位于外键关系的多方,则该规则可用。

  • 包含主键的表还必须映射到 MongoDB 模型中的集合。

1
  1. 在左侧Schema model窗格中,单击MongoDBRelational标题下的集合。

    这会提示Mappings窗格在屏幕右侧打开。

2
  1. Mapping屏幕中,单击+ Add以创建新的映射规则,或单击图标以编辑现有规则。

  2. 选择Embedded array Migrate table as

3
  1. 从下拉列表中选择Source tableParent collection的名称。

  2. 配置根路径:

    • Prefix:指定规则层次结构。

    • Field name:指定包含嵌入式大量或文档的字段。

4

当两个表之间存在多个外键时,允许您选择要嵌入的外键。 此选项仅出现在具有多个外键链接的表或集合中。

  1. Foreign key link下拉列表中选择要嵌入的外键的名称。

5

允许您显式包含表达式返回 true的行。 这与表筛选器不同,后者根据SQL查询进行过滤,并应用特定表中的所有行。 映射规则筛选器仅应用于特定映射。

  1. Mappings窗格中,单击Advanced settings旁边的图标。

  2. 选择Add mapping rule filter图标。

  3. Value expression文本框中输入有效的JavaScript过滤表达式。

6

允许您对嵌入式大量进行排序并限制该大量中的条目数量。 您可以仅应用排序、仅应用限制或同时应用两者。 限制为单个条目时,可以选择嵌入为文档而不是单元素大量,方法是选择Create an array of primitive values

  1. Mappings窗格中,单击Advanced settings旁边的图标。

  2. 选择Add array conditions图标。

  3. Value expression文本框中输入过滤。

  4. Sort by and order标题中,选择要排序的源字段,然后在 对于升序和降序排列。

  5. 选择Limit选项:

    • No limit: No limit

    • Limit number of rows:输入大量中返回的最大元素数。 默认值为10

注意

  • 无法对已排除的字段进行排序。 如果后来排除了先前选择的排序字段,则大量条件将被删除。

  • 如果在连续作业的 CDC 阶段修改了大量,则排序和限制仅考虑新修改的行和预先存在的大量元素,而不考虑表中不在大量中的其他值。

7
  1. 为新映射规则定义选项。 定义映射规则选项时,您可以:

    • 更改collection名称。

      要更改集合名称,请单击Name文本框并输入新名称。 单击文本框外部以保存更改。 如果该名称已被使用,您会收到验证错误。

    • 添加计算字段以根据关系源列创建新字段。 有关更多信息,请参阅计算字段

    • 更改字段名称。

    • 在同步作业中包含或排除字段,方法是单击字段名称旁边的图标。

8
  1. 单击 Save And Close(连接)。

本部分演示了Embedded array映射规则的关系输入和 MongoDB 输出。

在本例中:

  • Embedded Array映射规则应用于Customer表。

  • Source table设置为Order

  • Prefix设置为(root)

  • Field Name设置为orders

单击下面的标签页可查看此示例的输入和输出:

Customer 表:

id
名称
Address1
Address2
Address3
1
乔林·福斯罗普
86 德怀特·帕斯
卡雷加尔
3800-854

Orders 表:

OrderID
CustomerID
TotalAmount
OrderStatusID
1
1
50.00
1
4
1
500.00
3

Customer集合中的文档现在将Order详细信息嵌入为名为Orders的对象字段数组。

所有客户订单现在都作为嵌套文档数组显示在Customer集合中。

{
"_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
}
]
}

后退

新建文档