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)
我想按最大值过滤一个数组,然后 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)