I have a collection named event
.
I have an aggregation query as follows
db.event.aggregate([
{ "$group": {
"_id":{
"UserId":"$TracInfo.UserId",
"SessionId":"$TracInfo.SessionId"
},
"EventName":{ "$push": {
"Name":"$Name",
"Time":"$Timestamp"
}}
}},
{ "$out" :"demo" }
])
Its output is as follows :
{
"result":[
{
"_id" : {
"UserId" : "pawan",
"SessionId" : "q69lIFHcpsCRgxtbJu1v"
},
"EventName" : [
{
"Name" : "PREMISES MAP DELETED",
"Time" : NumberLong("1336090020090")
},
{
"Name" : "SCREEN STOPPED",
"Time" : NumberLong("1336090020010")
},
{
"Name" : "SETTINGS CHANGED",
"Time" : NumberLong("1336090020030")
},
{
"Name" : "PREMISES MAP DELETED",
"Time" : NumberLong("1336090020100")
},
{
"Name" : "SCREEN STARTED",
"Time" : NumberLong("1336090020330")
},
...
},
...
]
}
I want to sort EventName array of each document in result on Time value.
Is there any way to do it?
I have tried
{$sort:{"EventName.Time":1}}
But it did not work.