Powłoka MongoDB leniwie ocenia kursory, co oznacza, że seria operacji połączonych, które wykonałeś, powoduje wysłanie jednego zapytania do serwera, używając stanu końcowego opartego na operacjach połączonych. Więc kiedy mówisz "sort({time: -1}).limit(2).sort({time: 1})
" drugie wywołanie sortowania zastępuje sortowanie ustawione przez pierwsze wywołanie.
Aby osiągnąć pożądany wynik, prawdopodobnie lepiej odwrócić dane wyjściowe kursora w kodzie aplikacji, zwłaszcza jeśli ograniczasz się do małego zestawu wyników (tutaj używasz 2). Dokładny kod do tego zależy od używanego języka, którego nie określiłeś.