Als je zo'n sortering wilt doen, wil je waarschijnlijk je gegevens op een andere manier opslaan. MongoDB is over het algemeen niet zo goed in het manipuleren van geneste documenten als velden op het hoogste niveau. In jouw geval zou ik aanraden om ptime, pt en uid op te splitsen in hun eigen collectie:
berichten
{
"_id":417,
"ptime":ISODate("2013-11-26T11:18:42.961Z"),
"type":"1",
"txt":"test message"
},
gebruikers
{
"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")
}
U kunt dan een index instellen op de gebruikersverzameling voor uid, ptime en pt.
U moet echter twee zoekopdrachten uitvoeren om ook de sms-berichten zelf te ontvangen.