首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Node.js中使用Mongoose分页?

如何在Node.js中使用Mongoose分页?
EN

Stack Overflow用户
提问于 2011-04-04 22:27:49
回答 30查看 278.4K关注 0票数 281

我正在用Node.js和mongoose写一个网页应用。如何对从

打电话?我想要一个可与之相比的功能

在SQL中。

EN

回答 30

Stack Overflow用户

回答已采纳

发布于 2011-04-04 23:15:30

在仔细研究了Mongoose API和Rodolphe提供的信息之后,我找到了这个解决方案:

MyModel.find(query, fields, { skip: 10, limit: 5 }, function(err, results) { ... });
票数 264
EN

Stack Overflow用户

发布于 2014-05-14 03:48:14

我对这个问题中被接受的答案感到非常失望。这将无法扩展。如果您阅读了cursor.skip( )上的详细说明:

cursor.skip()方法通常开销很大,因为它需要服务器从集合或索引的开头遍历以获取偏移量或跳过位置,然后才开始返回结果。随着偏移量(例如上面的pageNumber )的增加,cursor.skip()将变得更慢并占用更多的CPU。对于较大的集合,cursor.skip()可能会变成IO绑定。

为了以可伸缩的方式实现分页,结合使用limit( )和至少一个筛选条件,createdOn日期适合多种用途。

MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )
票数 316
EN

Stack Overflow用户

发布于 2013-02-12 06:29:33

使用mongoose,express和jade进行分页-

这里有一个我的博客的链接,里面有更多的细节

var perPage = 10
  , page = Math.max(0, req.params.page)

Event.find()
    .select('name')
    .limit(perPage)
    .skip(perPage * page)
    .sort({
        name: 'asc'
    })
    .exec(function(err, events) {
        Event.count().exec(function(err, count) {
            res.render('events', {
                events: events,
                page: page,
                pages: count / perPage
            })
        })
    })
票数 138
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5539955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档