Dataweave 2.0 maxBy 和过滤器

Dataweave 2.0 maxBy and filter

我想按最大值过滤一个数组,然后 return 所有具有该值的元素。 Dataweave 只是 returning 1.

这是 Mule 4 上的 dataweave 2.0。首先,应该有一个 groupBy 来对具有相同 id 的元素进行分组。然后,在每个元素组中,应该搜索最大的 check_date,并且只有每个元素组中具有该日期的那些才应该 returned。

%dw 2.0
output application/json

var arr = [
  {
    "id": "001P000001MPf0XIAT",
    "code": "580",
    "type": "M",
    "check_date": "2017-09-08T12:00:00"
  },
  {
    "id": "001P000001MjaVOIAZ",
    "code": "ZN1",
    "type": "A",
    "check_date": "2018-05-01T12:00:00"
  },
  {
    "id": "001P000001MjaVOIAZ",
    "code": "ZN1",
    "type": "M",
    "check_date": "2018-05-01T12:00:00"
  },
  {
    "id": "001P000001MjaVOIAZ",
    "code": "ZN1",
    "type": "A",
    "check_date": "2017-11-01T12:00:00"
  },
  {
    "id": "001P000001MPf0XIAT",
    "code": "580",
    "type": "M",
    "check_date": "2019-04-12T12:00:00"
  }
]
---
arr groupBy $.id mapObject (value,key) -> { 
    grouping:{
        id:key,
        rows:value maxBy $.check_date
    }
}
rows: value filter ((item, index) -> 
    item.check_date == (value maxBy $.check_date).check_date)