mongoose这样查数据库前10条快吗,Article.find({}, 'XXX').limit(10).exec(),find方法是不是找出集合所有数据啊,然后取出10条,会不会有性能问题。但是不管这个集合多大,我只想要前10条有什么性能优化方法吗?
1条回答 默认 最新
关注分页查询
// 失败后的模板 const errorTem = (msg, error) => res.send({ code: 500, msg, error }); // 查詢成功后数据返回的模板 const successTem = (msg, data) => ({ code: 200, msg, data }) // 接口逻辑 router.post('/list', (req, res) => { let { pageSize, // 每页多少条 pageNo, // 当前页 } = req.body const regFn = (arr) => { const params = {} arr.forEach(key => { if (!req.body[key]) return params[key] = new RegExp(req.body[key], 'i') }); return params } // 记录查询后的状态(防止查询多次) const find = Client.find(regFn(['name', 'phone'])); // 此处为了获取总数 find.then((datas) => { // 此处是分页查询 limit:获取多少条数据;skip:跳过多少条数据 find.limit(pageSize).skip(pageSize * (pageNo - 1)).then((data) => { res.send(successTem('查询成功', { data, total: datas.length })) }).catch(e => res.send(errorTem('查询失败', e))) }).catch(e => res.send(errorTem('查询失败', e))) })解决 无用评论 打赏 举报