Mongo限制回报

时间:2017-10-09 14:20:47

标签: javascript node.js mongodb

我一定是做错了。当使用mongod(node.js)从mongodb获取数据时,我使用skip和limit实现了分页。

    const query = {};
    query.page  = Number(request.query.page) || 0;
    query.limit = Number(request.query.limit) || 36;
    query.skip  = query.page > 0 ? ((query.page - 1) * query.limit) : 0;
    query.query = null;



                db.collection('product').find( query.query , null, {
                    skip: query.skip,
                    limit: query.limit
                // sort etc
                }, (err, data) => {
                    if(err) {
                        return reply(Boom.internal('Internal DB error', err));        
                    } else {
                        return reply( data.toArray() )         
                    }
                });

当我访问我的api时:

http://localhost:3000/api/products?page=700&limit=7

7件物品归还给我......但

http://localhost:3000/api/products?page=700&limit=36

不返回任何项目....当然它应该返回那些存在的7个?任何建议都非常感谢。

**编辑 - 更新代码以显示查询...这都是在hapi应用程序中使用。为简洁起见,我已经删除了所有处理程序的东西。

**编辑 - 请参阅托马斯的

“page = 700& limit = 7等于指数4900 .. 4906而page = 700& limit = 36将是项目25200 ... 25235,它们似乎不存在。您可以尝试获取页面= 136安培;限制= 36"

基本上 - 页数是基于限制的......我把自己推到了范围之外。

query.skip  = query.page > 0 ? ((query.page - 1) * query.limit) : 0;

......我应该阅读我的代码......

0 个答案:

没有答案