【发布时间】:2020-07-02 13:17:11
【问题描述】:
我有一个要求,希望数据编织输出按特定顺序。
这是我必须处理的数据库输出
[
{
"order": "Order 2",
"inv": 6150579.00000,
"dio": 31,
"week": "2020-06-01T00:00:00"
},
{
"order": "Order 2",
"inv": 6318049.21000,
"dio": 33,
"week": "2020-06-08T00:00:00"
},
{
"order": "Order 1",
"inv": 6306077.76000,
"dio": 45,
"week": "2020-06-01T00:00:00"
},
{
"order": "Order 1",
"inv": 6047050.75000,
"dio": 43,
"week": "2020-06-08T00:00:00"
},
]
在数据库查询中,我编写了条件,以便按照特定的订单条件对其进行排序。在这种情况下,例如订单“12345 - 订单 1”必须在输出中排在第一位。
但是当我使用 groupBy 条件转换 dataweave 中的输出时,排序顺序发生了变化
payload map {
"order" : $.order,
"inv" : $.inv,
"dio" : $.dio,
"week" : $.week
} groupBy $.order
输出:
{
"Order 1": [
{
"order": "Order 1",
"inv": 6306077.76000,
"dio": 45,
"week": "2020-06-01T00:00:00"
},
{
"order": "Order 1",
"inv": 6047050.75000,
"dio": 43,
"week": "2020-06-08T00:00:00"
}
],
"Order 2": [
{
"order": "Order 2",
"inv": 6150579.00000,
"dio": 31,
"week": "2020-06-01T00:00:00"
},
{
"order": "Order 2",
"inv": 6318049.21000,
"dio": 33,
"week": "2020-06-08T00:00:00"
}
]
}
您会看到 Order 1 值排在第一位。
这是我编造的一个例子。实际上我有数百个数据。 在这种情况下,使用 orderBy $$ 也是错误的。
【问题讨论】:
-
让我重申您的目标:您想按
order分组,然后按inv排序,对吗?如果是这样,那么首先进行分组并遍历对象以对各个数组进行排序。
标签: mule mule-studio dataweave mulesoft mule-esb