sql >> Databasteknik >  >> NoSQL >> MongoDB

Vad är det bästa sättet att göra ajax-paginering med MongoDb och Nodejs?

"hoppa över och begränsa"-metoden är inte särskilt effektiv när du bläddrar långt in i dataset. Det är faktiskt en Shlemiel the Painters algoritm.

Områdesfrågor är mycket effektivare (när de stöds av index). Låt oss till exempel föreställa oss att du visar tweets. Din sidstorlek är 20 och du är på sida 1000 och vill ladda sida 1001.

Denna fråga

db.tweets.find().sort({created_at: -1}).skip(1001*20).limit(20)

är mycket mindre effektiv än

db.tweets.find({created_at: {$lt: last_displayed_date}}).
          sort({created_at: -1}).limit(20);

(förutsatt att du har index på created_at ).

Du förstår:när du laddar en sida, notera tidsstämpeln för den senaste tweeten och använd den för att fråga nästa sida.




  1. Vad är det korrekta sättet att hantera Redis-anslutning i Tornado? (Async - Pub/Sub)

  2. Bra sätt att använda socket.io med kluster i multi-core server?

  3. MongoDB:Hur får man en distinkt lista över underdokumentfältvärden?

  4. 5 sätt att få millisekunderna från ett datum i MongoDB