Node.js学习14~实现翻页或分页查询

Posted 秋9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js学习14~实现翻页或分页查询相关的知识,希望对你有一定的参考价值。

实现翻页或分页查询,下面使用node-sequelize模型查询。

findAndCountAll 方法是结合了 findAll 和 count 的便捷方法. 在处理与分页有关的查询时非常有用,在分页中,你想检索带有 limit 和 offset 的数据,但又需要知道与查询匹配的记录总数.

findAndCountAll 方法返回一个具有两个属性的对象:

count - 一个整数 - 符合查询条件的记录总数
rows - 一个数组对象 - 获得的记录
基于如下例子进行改造实现

const  count, rows  = await Project.findAndCountAll(
where: 
title: 
[Op.like]: 'foo%'

,
offset: 10,
limit: 2
);
console.log(count);
console.log(rows);

改造后的代码如下:

const pagenum = parseInt(page) || 1;
const pagesize = parseInt(pageSize)  || 10;
const  count, rows  = await Project.findAndCountAll(
where: 
title: 
[Op.like]: '优惠卷%'

,
limit: pagesize,
offset:pagenum*pagesize-pagesize,
raw:true
);
console.log(count);
console.log(rows);

其中

limit是每页显示的记录数

offset的公式

((page*limit)-limit)

以上是关于Node.js学习14~实现翻页或分页查询的主要内容,如果未能解决你的问题,请参考以下文章

分页得到查询总数的方法 mysql

如何在 MongoDB 中对聚合查询结果进行分页并获得总文档数(Node.js + Mongoose)?

框架学习日志:如何通过Ajax进行分页查询并绑定数据?

Atitit.列表页面and条件查询的实现最佳实践------翻页 分页 控件的实现java .net php

我如何检索所有 twilio 频道或分页,按更新的频道属性排序?

MySql翻页查询