Here’s a variant using reduce
instead of group_by
:
reduce .[] as $m ({}; .[$m.country] += [$m])
Or as a defined function:
def grp(f): reduce .[] as $m ({}; .[$m|f] += [$m]);
grp(.country)
{
"germany": [
{
"name": "anna",
"country": "germany"
},
{
"name": "lisa",
"country": "germany"
}
],
"usa": [
{
"name": "john",
"country": "usa"
}
]
}