Forum Discussion
Hello @Anil , I am trying to implement similar logic but i need to group by two fields instead of one unlike in the above example. Instead of only emp_id , I have two fields i need to consider, suppose product_name and product_date , and then find the cumulative sum for this combo . Can you please help me with the logic for this?
- Aleksandar_A3 years agoContributor III
Hi @darshthakkar,
One approach will be to Map the input document with the following expression:
$.entries().sort((a,b) => a[0].localeCompare(b[0])).reduce((acc,curr) => acc.extend({[curr[0]]:curr[1]}),{})
Note: This will only sort properties on first level.
Let me know if this helps.
BR,
Aleksandar. - darshthakkar3 years agoValued Contributor
Thank you @AleksandarAngelevski for your suggestion.
I will try it out and keep you posted with my findings…- darshthakkar3 years agoValued Contributor
@AleksandarAngelevski - You’re right, Alphabetical sorting doesn’t work on the first level so you’ll have to break that hierarchy and once you’re at the final stage, your expression will definitely work, I’ve tested it and can confirm that it works.
How I broke the hierarchy: Using JSON Splitter to reorganise JSON - #3 by Supratim (thank you @Supratim for your comments on a different thread)
- darshthakkar3 years agoValued Contributor
As we cannot mark multiple suggestions as “Solutions”, wanted to summarize the solution that will work for this use case:
1. $.entries().sort((a,b) => a[0].localeCompare(b[0])).reduce((acc,curr) => acc.extend({[curr[0]]:curr[1]}),{})
2. $.keys().sort().toObject((k,i)=> k, (k,i)=> $.get(k))
Both the expressions mentioned above will ONLY work if we are at the last stage of the hierarchy.
How I broke the hierarchy: Using JSON Splitter to reorganise JSON - #3 by Supratim
Thank you @AleksandarAngelevski , @alchemiz and @Supratim for your inputs. Closing this thread now.
$.keys().sort().reverse().toObject((k,i)=> k, (k,i)=> $.get(k))
- darshthakkar3 years agoValued Contributor
Yup, this is for sorting in reverse alphabetical order. Thank you @alchemiz
- darshthakkar3 years agoValued Contributor
@AleksandarAngelevski - Is it a safe assumption that we can use the same expression with a minor tweak to organize data alphabetically even if it’s not the JSON format?
- Aleksandar_A3 years agoContributor III
Well, if the data that we have on input is in different format I might consider another approach because this is a special use case.
- darshthakkar3 years agoValued Contributor
Makes sense, thank you @AleksandarAngelevski.
- darshthakkar3 years agoValued Contributor
Hey @alchemiz,
The solution you provided worked, the only consideration is that - “You need to be at the bottom of the hierarchy for sorting to work”.
Thank you, anyways 🙂
Related Content
- 2 years ago
- 3 years ago
- 12 months ago
- 4 years ago