我已经学习了只能创建用户,管理会话和删除用户的应用程序。后端在Node.js中。如何将mongodb查询拆分为结果页面
我有获取一个用户列表中查询
var userList = function (page, callback) {
user.find({}, function (err, doc) {
if (err) {
callback (err);
}
callback (doc);
});
};
然后我有发送回应用
var userList = function (req, res) {
var page = req.param.page;
models.account.userList(page, function (result) {
res.json (200, result);
});
};
,并在客户端的处理程序我把结果和将它们显示在浏览器的表格中。
我想要完成的是将列表分成多个页面...可以说...每个用户10个。因此,使用该功能用户列表的参数页我希望到正确的答案发送:
第1页:结果0-9 第2页:结果10至19 等
我可以做一个循环,提取了我但我确信从查询中接收到的用户重新处理它的所有列表只能提取10个用户并不是正确的方法,但我无法弄清楚正确的方法是什么。
我已经使用Google,但没有找到我想要的答案。同时快速检查MongoDB文档。
正如你所猜测的,我是新来的。
你能帮我指导一下这个简单任务的正确方法吗?
非常感谢。
使用bduran代码,我能够做到我想要的分页。答案后的代码是:
var userList = function (page, itemsPerPage, callback) {
user
.find()
.skip((page - 1) * itemsPerPage)
.limit (itemsPerPage)
.exec (function (err, doc) {
if (err) {
//do something if err;
}
callback (doc);
});
};
你可以看看的选项[极限](http://docs.mongodb.org/manual/reference/method/cursor.limit/)和[跳过](HTTP://docs.mongodb .org/manual/reference/method/cursor.skip /)。但是这可能不是最好的选择,如果结果是自然顺序的,你应该实际寻找一些你可以做的范围查询,如日期甚至是DocumentId。文件实际上也是这样说的。但就目前来看,目前你的问题并没有什么合理的建议。显示一些数据或者至少是你的分类意图。 –