Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sort array values after grouping - mongodb

I have grouped data with favourites, and I have pushed into array.I want to sort the array with object key for example name,email,or age.

 {
                        $group:
                        {
                            _id: "$favourite",
                            favourite: { $first: "$favourite" },
                            data: {
                                $push: {
                                    "name": "$name",
                                    "email": "$email",
                                    "age": "$age"
                                }
                            }
                        }
                    }

I tried with this below code, but its not working.

  { "$sort": { "data.name": 1 } }

How to resolve this?

like image 850
Surya Sing Avatar asked Oct 18 '25 23:10

Surya Sing


1 Answers

Use $sort before $group stage

db.collection.aggregate([
  { "$sort": { "name": 1 }},
  { "$group": {
    "_id": "$favourite",
    "favourite": { "$first": "$favourite" },
    "data": {
      "$push": {
        "name": "$name",
        "email": "$email",
        "age": "$age"
      }
    }
  }}
])
like image 193
Ashh Avatar answered Oct 20 '25 17:10

Ashh