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))) })
解决 无用评论 打赏 举报
悬赏问题
- ¥15 安霸cv22 + rtl8211f 千兆,udp传输丢包
- ¥15 关于区块链和边缘环境搭建的相关问题
- ¥15 windows远程桌面断卡重连软件卡顿问题
- ¥30 Unity 实现扫描效果
- ¥15 HbuilderX检测不到安卓模拟器
- ¥15 这个main已经在filename.obj中定义是什么错 C语言
- ¥15 关于#linux#的问题:exsi8.0系统 怎么更改web访问端口,不用80、443
- ¥15 使用elementor设计样式
- ¥15 谁能提供一个中文版的推销咨询网站连接?
- ¥15 springboot项目程序启动报错