在mongo中如何获得表中记录的当前位置与分页的总记录?
问题描述:
我想返回创建分页列表。我用graphql查询数据。通过我的查询,我传递了我需要的记录数(在名为first
的变量中)和最后一次提取记录的ID(在名为after
的变量中)。现在我设法写一个查询(请注意,我使用mongoose
)来获取记录。现在我需要做的是获取相关信息来执行分页,如hasNextPage
,hasPreviousPage
,currentPage
和totalPages
。在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
});
});
包是真的老了的和未保持正确的? – THpubs
你有没有试过这个[链接](https://github.com/edwardhotchkiss/mongoose-paginate) –
谢谢。最终与该插件解决。 – THpubs