如何对dataweave中的多列进行分组

how to groupBy muitiple columns in dataweave

我有下面的数组输入,需要按多个键进行分组。

[
  {
    "storeCode": 1201,
    "soNo": "S001",
    "item": "A001"
  },
  {
    "storeCode": 1201,
    "soNo": "S001",
    "item": "A001"
  },
  {
    "storeCode": 1201,
    "soNo": "S001",
    "item": "A002"
  },
  {
    "storeCode": 1201,
    "soNo": "S002",
    "item": "A001"
  }, 
  {
    "storeCode": 1202,
    "soNo": "S001",
    "item": "A002"
  }
]

如何将其按 storeCodesoNo 分组。

[
  {
    "storeCode": 1201,
    "soNo": "S001",
    "item": "A001"
  },
  {
    "storeCode": 1201,
    "soNo": "S001",
    "item": "A002"
  },
  {
    "storeCode": 1201,
    "soNo": "S002",
    "item": "A001"
  }, 
  {
    "storeCode": 1202,
    "soNo": "S001",
    "item": "A002"
  }
]

您似乎想要对数据进行排序,而不是分组。您可以像这样快速完成:

%dw 2.0
output application/json
---
(payload orderBy $.soNo) orderBy $.storeCode

如果您只想获得不同的对象,请勿使用串联 - 这在技术上是不正确的,因为会发生重叠。这样做:

%dw 2.0
output application/json
---
payload distinctBy $