nestjs 分页查询
时间: 2023-10-17 15:32:07 浏览: 188
分页查询
在NestJS中进行分页查询可以通过使用QueryBuilder来实现。首先,我们需要准备工作,即使用InjectRepository来注入Repository,并创建一个queryBuilder。如下所示:
```
@Injectable()
export class TicketDao {
constructor(
@InjectRepository(TicketEntity)
private readonly ticketRepo: Repository<TicketEntity> // 依赖注入
) {}
async filterAndPageQuery() {
let qb = this.ticketRepo.createQueryBuilder('ticket') // 创建queryBuilder
// 接下来写条件筛选和分页查询代码,代码看下面代码条
// 接下来的 qb.xxx 都是使用 QueryBuilder 的增删查改操作
}
}
```
在进行分页查询时,我们可以使用`.skip()`和`.take()`方法来指定要跳过的记录数和要获取的记录数。例如,我们可以使用以下代码进行分页查询:
```
qb = qb.skip(pageParam.pageSize * (pageParam.current - 1))
.take(pageParam.pageSize)
```
其中`pageParam`是一个包含当前页数和每页记录数的参数对象。我们将当前页数乘以每页记录数来计算要跳过的记录数,然后使用`take()`方法来限制获取的记录数。
最后,我们可以通过使用`.getMany()`方法来执行查询并获取结果。如果还需要获取总记录数,可以使用`.getManyAndCount()`方法。例如:
```
return await qb.getManyAndCount()
```
这样就可以在NestJS中进行分页查询了。你可以根据自己的需求来添加其他条件筛选和查询操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [nestjs typeorm 条件筛选、排序、分页 常见查询功能的实现](https://blog.csdn.net/landiyaaa/article/details/104730677)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文