Om du vill göra en sådan sortering vill du förmodligen lagra din data på ett annat sätt. MongoDB är i allmänhet inte i närheten av lika bra med att manipulera kapslade dokument som toppnivåfält. I ditt fall skulle jag rekommendera att dela upp ptime, pt och uid i sin egen samling:
meddelanden
{
"_id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"type":"1",
"txt":"test message"
},
användare
{
"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 sedan ställa in ett index på användarens samling för uid, ptime och pt.
Du måste göra två frågor för att även få själva textmeddelandena.