mongoose实现分页查询

mongodb数据库连接

//db.js
var mongoose = require('mongoose');
var DB_CONN_STR = 'mongodb://127.0.0.1:27017/manager'; 

mongoose.connect(DB_CONN_STR, { useNewUrlParser: true,authSource:'manager' }, (err, res) => {
  if (err) {
    // console.log(111)
    console.log(err)
  }
});
module.exports = mongoose;

数据库用户表结构

// shame.js
let mongoose = require('.');
let Schema = mongoose.Schema;
let userSchema = Schema({
    account: {
        type: String,
        required: true
    },
    passwd: {
        type: String,
        required: true
    },
    username: { 
        type: String,
        required: true
    },
    department: String,
    active: Boolean,
    created: Number,
    updated: Number,
    lastLogin: Number
});
let user = mongoose.model('manager_user', userSchema);
module.exports = user;

处理分页请求

//user.js
const express = require('express');
const router = express.Router();
const logger = require('../logger').logger;
const User = require('../db/user');
router.get('/list', function (req, res) {
    let query = req.query;
    User.countDocuments({}, (error, count) => {
        if (error) {
            logger.error(`user::/list::error:${JSON.stringify(error)}`);
            res.json({
                status: 400,
                msg: JSON.stringify(error)
            });
        } else {
            User.find({}).skip((query.pageNo - 1) * query.pageSize).limit(parseInt(query.pageSize)||20) .sort({ 'created': -1 }).exec((err, doc) => {
                if (err) {
                    logger.error(`user::/list::err:${JSON.stringify(err)}`);
                    res.json({
                        status: 400,
                        msg: JSON.stringify(err)
                    });
                } else {
                    res.json({
                        status: 200,
                        result: doc,
                        total: count,
                        msg:'OK'
                    });
                }
            })
        }
    })
});
module.exports = router;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值