nestjs typeOrm 分页
时间: 2023-10-20 14:31:00 浏览: 116
在NestJS中使用TypeORM进行分页查询的步骤如下:
1. 首先,在你的DAO或Repository文件中使用`InjectRepository`注入Repository:
```typescript
@Injectable()
export class TicketDao {
constructor(
@InjectRepository(TicketEntity)
private readonly ticketRepo: Repository<TicketEntity>
) {}
}
```
2. 在`async filterAndPageQuery()`方法中创建一个queryBuilder:
```typescript
async filterAndPageQuery() {
let qb = this.ticketRepo.createQueryBuilder('ticket');
// 在qb中可以写下面的条件筛选和分页查询代码
// 接下来的 qb.xxx 都是使用 QueryBuilder 的增删查改操作
}
```
3. 使用`skip`和`take`方法实现分页查询:
```typescript
qb = qb
.skip(pageParam.pageSize * (pageParam.current - 1))
.take(pageParam.pageSize);
```
其中,`skip`方法用于设置跳过的条数,`take`方法用于限制查询的条数。
4. 获取查询结果及查询结果总数:
```typescript
return await qb.getManyAndCount();
```
或者,如果你只需要查询结果而不需要总数,可以使用`.getMany()`方法。
以上是使用NestJS和TypeORM进行分页查询的基本步骤。你可以根据实际需求进行相应的修改和扩展。<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 ]
阅读全文