Saturday 24 February 2024

Distinctby opeator in MuleSoft4 dataweave 51

 Distinctby opeator in MuleSoft4 dataweave

In MuleSoft 4 DataWeave, the distinctBy operator serves a specific purpose: removing duplicate elements from an array based on a specified criteria. It differs from other operators in DataWeave that manipulate arrays in various ways. Here's a breakdown of its key aspects:


  • Iterates through an array and returns a new array containing only unique elements.

  • Uniqueness is determined by the result of a lambda function applied to each element in the array.

  • This lambda function defines the criteria for identifying duplicates.


distinctBy<T>(@StreamCapable items: Array<T>, criteria: (item: T, index: Number) -> Any): Array<T>

Explanation of the parameters:

  • items: The array containing the elements you want to filter for duplicates.

  • criteria: A lambda function that takes two arguments:

  • item: The current element being processed.

  • index: The index of the current element in the array (optional).

  • The lambda function should return a value that uniquely identifies each element. Elements with the same returned value are considered duplicates and only one of them will be included in the output array.


%dw 2.0
output application/json
payload distinctBy $.id

This example removes duplicate elements from the payload array based on their id property. Only elements with unique id values will be included in the output.

Key points to remember:

  • distinctBy works with arrays of any type (T).

  • The lambda function can access any properties or attributes of the elements.

  • The lambda function can return any data type, not just strings.

  • distinctBy is case-sensitive by default, but you can use string manipulation functions within the lambda to achieve case-insensitive comparison.

Comparison with other operators:

  • filter: While filter can also remove elements from an array, it operates based on a boolean condition, not necessarily unique values.

  • groupBy: This operator groups elements together based on a common attribute, not removing duplicates.

  • unique: This operator is deprecated in DataWeave 2.x and replaced by distinctBy.


distinctBy is a powerful tool for removing duplicate elements from arrays in MuleSoft 4 DataWeave. Understanding its functionality and syntax allows you to efficiently manipulate and clean your data sets. Feel free to ask if you have any further questions or require more specific examples based on your use case!

No comments:

Post a Comment

Note: only a member of this blog may post a comment.