使用 nodejs 和 mongoDB 作为后端数据的延迟加载

sas*_*ran 3 load lazy-evaluation mongodb node.js

我们的收藏有大约 1 亿份文件。我们使用 nodejs 和 expressjs 创建了一个简单的应用程序,在 mongo 查询中带有一个限制子句。对目前的用户来说已经足够了。与此同时,我们正在尝试实现延迟加载,以便初始页面加载返回很少的文档,而当用户滚动时,我们希望加载更多文档。苦苦挣扎从哪里开始以及如何实现它。感谢您的建议。我的 index.js 文件看起来像这样

router.get('/users', function(req, res) {
  var db = req.db; 
  var users = db.get('users'); 

  users.find(query, {limit: 10000}, function(e, docs){
    res.render('users', { 
      title: 'Users',
      'users': docs  
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

我想取消限制并使用跳过来实现这一点。请发表您的建议

小智 6

应该有帮助。它使用游标的.skip方法.find()。我称之为分页而不是延迟加载。

var itemsPerPage = 10;

router.get('/users/:pageNum', function(req, res) {
  var db = req.db; 
  var users = db.get('users'); 
  users.find(query, {skip: (itemsPerPage * (pageNum-1)), limit: itemsPerPage},function(e, docs){
    res.render('users', { 
      title: 'Users',
      'users': docs  
    });
  });
});
Run Code Online (Sandbox Code Playgroud)