nodejs mongoose 分页查询

Posted leahtao的前端积累

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs mongoose 分页查询相关的知识,希望对你有一定的参考价值。

最近在用所学知识写自己的博客系统,想要实现一个获取文章列表的分页功能,大概是如下效果:

 

 

 第一次用nodejs写分页查询功能,记录一下过程

前端代码:

async getArticleList (index) {
      let res = await this.$http.post(\'/article/getArticleList\',{page: index, pageSize: this.pageSize})
      console.log(res)
      if(res.data.result === 0) {
        let data = res.data
        this.count = data.total
        this.articlelist = data.artcleList
      }else {
        return this.$Message.error(res.data.error_info)
      }
    }

服务端代码:

// 获取文章列表
router.post(\'/getArticleList\', function ( req, res) {
    let page = req.body.page
    let limit = req.body.pageSize || 5
    Article.find({},function (err, data) {
        if(err) return res.status(500).json({
            result: 1,
            error_info: \'请求失败!\'
        })
        let count = data.length
        console.log(count)
        Article.find({}).skip((page - 1)*parseInt(limit)).limit(parseInt(limit)).exec(function (err, data) {
            if(err) return res.status(500).json({
                result: 1,
                error_info: \'服务器繁忙,请稍后重试!\'
            })
            return res.status(200).json({
                result:0,
                message:\'请求成功\',
                total: count,
                artcleList: data
            })
        })
    })
})

page和limit是由前端传过来的,通过req.body来获取,因为是要给前端传所有的数据条数,所以就需要将所有数据都查询出来,通过data.length取出长度.。

skip表示跳过前N个查询结果,返回从N+1个开始的limit个数据,比如,一页5条数据,现在要查询第3页数据,就跳过前两页的10条数据,返回从第三页开始的5条数据。

exec表示计算由前面查询条件返回的结果。

推荐文章:

https://blog.csdn.net/qq_36443294/article/details/84990826

https://www.jianshu.com/p/2f54b90efe15

以上是关于nodejs mongoose 分页查询的主要内容,如果未能解决你的问题,请参考以下文章

NodeJs中怎么修改 mongoose 查询到的值

如何使用猫鼬和EJS实现分页并在分页时保留搜索查询?

如何在 MongoDB 中对聚合查询结果进行分页并获得总文档数(Node.js + Mongoose)?

Mongoose 查询帮助:对嵌套数组进行分页、排序、限制

[js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)

如何在 NodeJS 的查询参数中传递时间戳(Express + Mongoose)