MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Problema di ordinamento e limite basato sul tempo di concatenamento

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.