jq Cheat Sheet/Group array items by field

Group objects into buckets by a property.

Section: Arrays and Objects

Group array items by field

bash
bash
echo '[{"team":"a","name":"x"},{"team":"a","name":"y"},{"team":"b","name":"z"}]' | jq 'group_by(.team)'
Explanation

Input should already be sorted by the grouping field for predictable results.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Arrays and Objects
Sort array of objects by field
Order objects by a chosen property.
OpenIn sheetbashsame section
Merge objects
Combine two objects with later keys overwriting earlier ones.
OpenIn sheetbashsame section
Build new object
Construct an object from selected fields.
OpenIn sheetbashsame section
Array length
Return the number of items in an array.
OpenIn sheetbashsame section
Map each item to a property
Transform an array of objects into one field per item.
OpenIn sheetbashsame section
Sum array values
Add all numbers in an array.
OpenIn sheetbashsame section