首页 > 解决方案 > 如何在 Mulesoft 中使用 Dataweve 使用 groupBy 函数

问题描述

我在 Dataweave 中有以下 JSON 数据。我想 groupBy products.plu 然后总结数量。

请参阅下面的输入和所需的输出。谢谢

{
  "brandCode": "XXX",
  "storeCode": "XX100",
  "products": [
 {
    "plu": "NF0A529SWE7100L",
    "qty": 2.000
  },
  {
    "plu": "NF0A529SWE7100L",
    "qty": -1.000
  },
  {
    "plu": "NF0A529SWE7100M",
    "qty": 2.000
  }
]
  }

期望的输出:

{
  "brandCode": "XXX",
  "storeCode": "XX100",
  "products": [
 {
    "plu": "NF0A529SWE7100L",
    "qty": 1.000
  },
  {
    "plu": "NF0A529SWE7100M",
    "qty": 2.000
  }]
  }

标签: dataweavemulesoft

解决方案


我的代码在下面

{
      "brandCode": payload.brandCode,
      "storeCode": payload.storeCode,
      "products": 
       payload.products groupBy $.plu distinctBy $ pluck $ map{
        "plu": $.storeCode,
        "qty": (sum($.qty)),

但是输出:plu 是数组(例如:“plu”:[“NF0A529SWE7100L”])我必须使用 min($.plu),我可以知道我们有最好的方法吗?


推荐阅读