Write-behind foreach 示例

foreach 部分用于将对象列表或数组展开为选定目标中的行。foreach 表达式的结构为 <field_name>:<JMESPath expression>。以下示例使用 add_field 转换来将输入 JSON 准备为所需的结构。然后,它应用 foreach 使用 keysmapping 将每个 order 对象作为关系数据库记录写入。在此示例中,使用 JMESPath 函数 to_string 将对象数组 specs 展平为字符串。

source:
  redis:
    key_pattern: orderdetail:*
    trigger: write-behind
    exclude_commands: ["json.del"]
transform:
  - uses: add_field
    with:
      fields:
        - field: my_orders
          language: jmespath
          expression: |
            orders[*].{
              code: code
              periodStartTime: periodStartTime
              periodEndTime: periodEndTime
              specs: to_string(specs)
            }
output:
  - uses: relational.write
    with:
      connection: mssql
      schema: dbo
      table: OrderMaster
      keys:
        - Code: orderDetail.code
      mapping:
        - DeliveryDate: orderDetail.deliveryDate
        - ProductCode: orderDetail.productCode
        - CountryCode: orderDetail.countryCode
  - uses: relational.write
    with:
      connection: mssql
      schema: dbo
      table: Order
      foreach: "order: my_orders[]"
      keys:
        - Code: order.code
      mapping:
        - OrderDetailCode: orderDetail.code
        - PeriodStartTime: order.periodStartTime
        - PeriodEndTime: order.periodEndTime
        - Specs: order.specs
评价此页面
返回顶部 ↑