Group by + Consolidation + Filter + sort

hi, I would like to complete this operation

data:

{
    "city": "Los Angeles",
    "name": "1",
    "time": "1464240096"
}   
{
    "city": "Los Angeles",
    "name": "2",
    "time": "1464240096"
}  
{
    "city": "Los Angeles",
    "name": "3",
    "time": "1464240096"
}  
{
    "city": "Los Angeles",
    "name": "4",
    "time": "1464240096"
} 
{
    "city": "Los Angeles",
    "name": "5",
    "time": "1464240096"
} 
{
    "city": "Los Angeles",
    "name": "6",
    "time": "1464240096"
} 
{
    "city": "Los Angeles",
    "name": "7",
    "time": "1464240096"
} 
{
    "city": "Los Angeles",
    "name": "8",
    "time": "1464240096"
}  
{
    "city": "Los Angeles",
    "name": "9",
    "time": "1464240096"
} 
{
    "city": "Los Angeles",
    "name": "10",
    "time": "1464240096"
}  
{
    "city": "Los Angeles",
    "name": "11",
    "time": "1464240096"
} 
{
    "city": "Los Angeles",
    "name": "12",
    "time": "1464240096"
} 
{
    "city": "new York",
    "name": "21",
    "time": "1464240091"
}  
{
    "city": "new York",
    "name": "22",
    "time": "1464240091"
} 
{
    "city": "new York",
    "name": "23",
    "time": "1464240091"
} 
{
    "city": "new York",
    "name": "24",
    "time": "1464240091"
}  
{
    "city": "new York",
    "name": "25",
    "time": "1464240091"
} 
{
    "city": "new York",
    "name": "26",
    "time": "1464240091"
}  
{
    "city": "new York",
    "name": "27",
    "time": "1464240091"
} 
{
    "city": "new York",
    "name": "28",
    "time": "1464240091"
} 
{
    "city": "new York",
    "name": "29",
    "time": "1464240091"
} 
{
    "city": "new York",
    "name": "30",
    "time": "1464240091"
} 
{
    "city": "new York",
    "name": "31",
    "time": "1464240091"
} 
{
    "city": "new York",
    "name": "32",
    "time": "1464240091"
}

then return:

[
    {
        "city": "new York",
        "name": "21",
        "time": "1464240091",
        "names": [
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10",
            "11",
            "12"
        ]
    },
    {
        "city": "Los Angeles",
        "name": "1",
        "time": "1464240096",
        "names": [
            "21",
            "22",
            "23",
            "24",
            "25",
            "26",
            "27",
            "28",
            "29",
            "30",
            "31",
            "32"
        ]
    }
]

the ultimate result I need meets :
firstly: sorted by time ,
secondly :merge into 2 records finally

What should I do