Ho mongodb e NodeJs. La connessione viene effettuata tramite mongoosejs.
Qual è il modo migliore per sviluppare ajax infinity scroll? Dovrei usare limite e offset?Qual è il modo migliore per eseguire l'impaginazione ajax con MongoDb e Nodejs?
13
A
risposta
33
L'approccio "salta e limita" non è molto efficiente quando si esegue il paging in un set di dati. È effettivamente un Shlemiel the Painter's algorithm.
Le query di intervallo sono molto più efficienti (se supportate dagli indici). Ad esempio, immaginiamo che stai visualizzando tweet. Le dimensioni della pagina è di 20 e sei a pagina 1000 e vuole caricare la pagina 1001.
Questa query
db.tweets.find().sort({created_at: -1}).skip(1001*20).limit(20)
è molto meno efficiente rispetto
db.tweets.find({created_at: {$lt: last_displayed_date}}).
sort({created_at: -1}).limit(20);
(a condizione che si avere indice su created_at
).
Si ottiene l'idea: quando si carica una pagina, annotare il timestamp dell'ultimo tweet e utilizzarlo per interrogare la pagina successiva.
Problemi correlati
- 1. Qual è il modo migliore per eseguire un'inizializzazione costosa?
- 2. Qual è il modo migliore per eseguire jQuery .change()
- 3. Qual è il modo migliore per eseguire un'espressione matematica?
- 4. Qual è il modo migliore per eseguire codice Java sandboxed?
- 5. Qual è il modo migliore per comunicare tra due server?
- 6. Il modo migliore per eseguire una ricerca a testo completo in MongoDB e Mongoose
- 7. Qual è il modo migliore per lavorare con akka da nodejs
- 8. Il modo migliore per integrare NodeJS con Angular
- 9. Qual è il metodo migliore per eseguire il seeding di un'applicazione Node/MongoDB?
- 10. Qual è il modo migliore per aggiungereObserver/removeObserver con NSNotificationCenter?
- 11. qual è il modo migliore per stampare informazioni con R?
- 12. Qual è il modo migliore per confrontare Double e Int?
- 13. Qual è il modo migliore per iniziare con PyQt 5?
- 14. Qual è il modo migliore per lavorare con PostGIS e OpenLayers?
- 15. Il modo migliore per usare MongoDB con Node.js?
- 16. Il modo migliore per urldecode (php) in NodeJS
- 17. Qual è il modo migliore/più sicuro per reinstallare Homebrew?
- 18. Qual è il modo migliore per eseguire una revisione del codice con Subversion (SVN)?
- 19. Qual è il modo migliore per eseguire l'upgrade di un'app per rails per supportare SSL SSL?
- 20. Qual è il modo migliore per riutilizzare il parser Lua?
- 21. Qual è il modo migliore per documentare il codice f #?
- 22. Qual è il modo migliore per impostare l'URL di base per una richiesta Ajax utilizzando Jquery?
- 23. Qual è il modo migliore per testare un'app per rails?
- 24. Qual è il modo migliore per testare javascript?
- 25. Qual è il modo migliore per guardare un'applicazione desktop?
- 26. Qual è il modo migliore per gestire più azioni?
- 27. Qual è il modo giusto per gestire le connessioni Mongodb?
- 28. Qual è il modo migliore per gestire i timeout delle sessioni nelle richieste Ajax?
- 29. Qual è il modo migliore per rilevare il colore bianco?
- 30. Il modo migliore per scrivere ed eseguire i test unitari per il brunch con il caffè
Cosa fare se ci sono dei tweet creati contemporaneamente da utenti diversi ma devo mostrarli? –
Esattamente lo stesso millisecondo? Io non la penso così –
In questo caso, ordina per 'created_at: -1, user_id: 1' –