La shell MongoDB valuta pigramente i cursori, vale a dire che la serie di operazioni concatenate che hai eseguito comporta l'invio di una query al server, utilizzando lo stato finale basato sulle operazioni concatenate. Quindi, quando dici "sort({time: -1}).limit(2).sort({time: 1})
" la seconda chiamata da ordinare ha la precedenza sull'ordinamento impostato dalla prima chiamata.
Per ottenere il risultato desiderato, probabilmente è meglio invertire l'output del cursore nel codice dell'applicazione, specialmente se ti stai limitando a un piccolo set di risultati (qui stai usando 2). Il codice esatto per farlo dipende dalla lingua che stai utilizzando, che non hai specificato.