Hvis du ønsker at gøre sådan en sortering, vil du sandsynligvis gemme dine data på en anden måde. MongoDB er generelt ikke nær så god til at manipulere indlejrede dokumenter som felter på øverste niveau. I dit tilfælde vil jeg anbefale at dele ptime, pt og uid ud i deres egen samling:
beskeder
{
"_id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"type":"1",
"txt":"test message"
},
brugere
{
"id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"uid":"52872ed59542f",
"pt":ISODate("2013-11-26T11:18:42.961Z")
},
{
"id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"uid":"524eb460986e4",
"pt":ISODate("2013-11-26T11:18:42.961Z")
},
{
"id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"uid":"524179060781e",
"pt":ISODate("2013-11-27T12:48:35Z")
}
Du kan derefter sætte et indeks på brugernes samling for uid, ptime og pt.
Du skal dog lave to forespørgsler for også at få selve tekstbeskederne.