Mulesoft:根据日期字段对数据进行分组

Mulesoft: Group data based on date field

谁能帮我在 mule 4 中编写 dataweave for

CSV 输入

name, dateOfSelected, joiningDate, leavingDate, age
John, 2020-02-20, 2020-02-22, 2020-04-30, 28
Sam, 2020-02-21, 2020-02-22, 2020-04-20, 30
Ben, 2020-03-03, 2020-03-04, 2020-04-29, 34
Mike, 2020-04-21, 2020-04-21, 2020-06-19, 25

预期JSON 输出应包含在 dateOfSelected 字段值下分组的名称、joiningDate 和 leavingDate

{
  "failedToQuery": "No",
  "result": "success",
  "dataAvailable" : "yes"
  "2020-02-20": {
    "joiningDate": "2020-02-22",
    "leavingDate": "2020-04-30",
    "name": "John"
  },
  "2020-02-21": {
    "joiningDate": "2020-02-22",
    "leavingDate": "2020-04-20",
    "name": "Sam"
  },
  "2020-03-03": {
    "joiningDate": "2020-03-04",
    "leavingDate": "2020-04-29",
    "name": "Ben"
  },
  "2020-04-21": {
    "joiningDate": "2020-04-21",
    "leavingDate": "2020-06-19",
    "name": "Mike"
  }
}

我将 运行 一个数据库查询,使用 dateOfSelected 字段值获取 CSV 输入数据。 如果没有从 DB 返回数据,输出应该是

{
      "failedToQuery": "No",
      "result": "Success",
      "dataAvailable" : "no"
}

您可以使用这个脚本:

%dw 2.0
output application/json
---
{failedToQuery: "No"} ++
{result:"success"} ++
{dataAvailable: if (isEmpty(payload)) "no" else "yes"} ++
(payload 
    map $ - "age"   // remove age attribute
    groupBy (item, index) -> item.dateOfSelected
)