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

我们的collections有大约1亿份文件。 我们创build了一个简单的应用程序,在mongo查询中使用带有限制子句的nodejs和expressjs。 到目前为止,用户已经足够了。 与此同时,我们试图实现延迟加载,以便初始页面加载返回less量文档,当用户滚动时,我们想要加载更多的文档。 挣扎着从哪里开始,如何提前实施它。 感谢您的build议。 我的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 }); }); }); 

我想删除限制,并使用跳过试图实现这一点。 请发表您的build议

       

网上收集的解决方案 "使用nodejs和mongoDB作为后端数据的延迟加载"

这应该有所帮助。 它使用.find()游标的.skip方法。 我把它称为分页,而不是懒加载。

 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 }); }); }); 

你可以在你的路线中实现分页

像下面的东西;

 // GET /users?start=20 router.get('/users', function(req, res) { var db = req.db; var start = parseInt(req.query.start) || 0; var users = db.get('users'); users.find(query, {start: start, limit: 10000}, function(e, docs){ res.render('users', { title: 'Users', 'users': docs }); }); }); 

我build议你使用Mongoose来高效地build模MongoDB对象,然后利用可用的许多mongoose分页模块之一。