在mongo中如何获得表中记录的当前位置与分页的总记录?

问题描述:

我想返回创建分页列表。我用graphql查询数据。通过我的查询,我传递了我需要的记录数(在名为first的变量中)和最后一次提取记录的ID(在名为after的变量中)。现在我设法写一个查询(请注意,我使用mongoose)来获取记录。现在我需要做的是获取相关信息来执行分页,如hasNextPage,hasPreviousPage,currentPagetotalPages在mongo中如何获得表中记录的当前位置与分页的总记录?

要获取大部分这些信息,我需要获取数据库中的记录总数。为此,我需要发送另一个数据库请求。

我还需要知道表中记录的位置。不知道如何。

这里的查询:

new Promise((resolve, reject) => 
    Company.where('_id') 
    .gt(after) 
    .limit(first) 
    .lean() 
    .exec((error, doc) => { 
     if (error) { 
     reject(error); 
     } 

     resolve({ 
     edges: doc, 
     pageInfo: { 
      hasNextPage: '...', 
      hasPreviousPage: '...', 
      currentPage: '...', 
      totalPages: '...' 
     } 
     }); 
    })) 

任何想法如何有效地做到这一点?

你可以试试这个模块mongoose-paginate

这里我使用,用于分页,

var current = req.query.filter.current; 
var limit = req.query.filter.limit; 
console.log('params.query.filter.current',current); 
var skip = Number(limit)*Number(current)-Number(limit); 
console.log('skip::',skip); 
    Cours.find({'attributes.version.status': true}).skip(skip).limit(limit).sort({_id:'asc'}).exec(function (err, resulta) { 
     if (err) { 
      console.log('erreur trouverCours'); 
      res.json({ 
       protecteds: err 
      }); 
     } 
     console.log('cours ::', resulta); 
     res.json({ 
      "data": resulta 
     }); 
    }); 
+0

包是真的老了的和未保持正确的? – THpubs

+1

你有没有试过这个[链接](https://github.com/edwardhotchkiss/mongoose-paginate) –

+0

谢谢。最终与该插件解决。 – THpubs