MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách tốt nhất để phân trang ajax với MongoDb và Nodejs là gì?

Phương pháp tiếp cận "bỏ qua và giới hạn" không hiệu quả lắm khi bạn phân trang xa vào tập dữ liệu. Nó thực sự là một thuật toán của Shlemiel the Painter.

Các truy vấn phạm vi hiệu quả hơn nhiều (khi được hỗ trợ bởi các chỉ mục). Ví dụ:hãy tưởng tượng rằng bạn đang hiển thị các tweet. Kích thước trang của bạn là 20 và bạn đang ở trang 1000 và muốn tải trang 1001.

Truy vấn này

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

nhiều kém hiệu quả hơn

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

(miễn là bạn có chỉ mục trên created_at ).

Bạn có ý tưởng:khi bạn tải một trang, hãy ghi lại dấu thời gian của tweet cuối cùng và sử dụng nó để truy vấn trang tiếp theo.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sử dụng MongoDB làm Nguồn dữ liệu trong GoLang

  2. Redis vs MongoDB

  3. Cách mới để quản lý cơ sở dữ liệu nguồn mở

  4. Tôi có thể sử dụng '$ set' trên tài liệu được nhúng khi sử dụng biến làm tên đã nộp trong MongoDB không?

  5. Cách kết nối ứng dụng mongodb với Meteor MongoDB cục bộ