Node MongoDB查询列表带分页

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 前端需要的数据结构{ "code": "0000", "desc": "OK", "body":{ "page_no": 1,//当前第几页 ...

前端需要的数据结构

{
        "code": "0000",
        "desc": "OK",
        "body":{
                "page_no": 1,//当前第几页
                "page_size": 1,//每页显示几条
                "page_total": 2,//总共几页
                "total": 2,//总共几条数据
                "data": [{
                    ...  
                 }]     //列表数据集合
        }
}

下面代码将完整展现一个列表接口

/**
 * 题目列表查询
 * 1、先查总数
 * 2、再按条件查询
 * */
const queryList = (req, res) => {
    const _params = req.body.data;
    const query = QuestionMongoDB.find({});
    let _num = _params.page_size;//每页几条
    let _total = 0;
    let _skip = _params.page_no * _num;
    let _requirement = {};
    let _id = _params.id;
    if (_id) {
        _requirement = {'_id': _params.id};
    }
    //通过查询全部数据获得总条数
    QuestionMongoDB.find(_requirement, (err, data) => {
           if(err){
            //查询错误
           }else{
            _total = data.length;//获得总条数
           }
    });
    //id是条件查询,可选参数
    if (_id) {
        query.and(_requirement);
    }
    query.limit(_num); //限制条数,每次查多少条
    query.skip(_skip);  //开始数 ,当前查第几页*每页显示第几条得到开始条数
    query.sort({'_id': -1});//排序  id 倒序
    query.exec((err, value) => {
        if (err) {
            //返回错误
        } else {
            //得到数据
            const page = {
                page_no: _params.page_no + 1,
                page_size: _num,
                total: _total,
                data:[...value]
            };
           //返回成功
        }
        mongoose.disconnect();
    })
};
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
16天前
|
存储 NoSQL JavaScript
Node.js导入MongoDB具体操作指南
通过本文,您已经学会了如何在Node.js中导入MongoDB并执行基本的CRUD操作。Node.js与MongoDB的结合使得构建高效、可扩展的后端服务变得更加容易。通过遵循本文的步骤,您可以快速设置并运行一个强大的数据存储和处理系统。希望这篇指南能为您的开发工作提供实用的帮助。
48 13
|
26天前
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
81 9
|
3月前
|
存储 NoSQL MongoDB
MongoDB 查询分析
10月更文挑战第21天
27 1
|
3月前
|
NoSQL MongoDB 索引
MongoDB 覆盖索引查询
10月更文挑战第21天
50 1
|
3月前
|
SQL NoSQL MongoDB
MongoDB 查询文档
10月更文挑战第15天
54 1
|
3月前
|
NoSQL 前端开发 JavaScript
Node.js 连接 MongoDB
10月更文挑战第20天
47 0
|
3月前
|
人工智能 NoSQL 机器人
MongoDB Atlas与YoMio.AI近乎完美适配:推理更快速、查询更灵活、场景更丰富
随着MongoDB的新发布和革新,YoMio.AI的“闪电式发展”值得期待。
|
19天前
|
JavaScript
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
nodejs安装之npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED reason: certificate has expired-证书错误通用问题解决方案-优雅草央千澈
|
2月前
|
Web App开发 JavaScript 前端开发
2024年5月node.js安装(winmac系统)保姆级教程
本篇博客为2024年5月版Node.js安装教程,适用于Windows和Mac系统。作者是一名熟悉JavaScript与Vue的大一学生,分享了Node.js的基本介绍、下载链接及简单安装步骤。安装完成后,通过终端命令`node -v`验证版本即可确认安装成功。欢迎关注作者,获取更多技术文章。
39 2
2024年5月node.js安装(winmac系统)保姆级教程
|
2月前
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
153 2