【发布时间】:2019-07-31 04:49:00
【问题描述】:
我想按最大值过滤数组,并让它返回具有该值的所有元素。 Dataweave 只返回 1。
这是 Mule 4 上的 dataweave 2.0。首先,应该有一个 groupBy 来对具有相同 id 的元素进行分组。然后,在每个元素组中,应该搜索最大的 check_date,并且只返回每个元素组中具有该日期的那些。
%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
}
}
【问题讨论】:
标签: dataweave