使用分页

使用分页

大多数情况下,在开发应用程序时,你可能需要分页功能。如果你的应用程序中有分页,page slider 或无限滚动组件,则使用此选项。

const users = await getRepository(User)
  .createQueryBuilder("user")
  .leftJoinAndSelect("user.photos", "photo")
  .take(10)
  .getMany();

将会返回前 10 个 user 的 photos。

const users = await getRepository(User)
  .createQueryBuilder("user")
  .leftJoinAndSelect("user.photos", "photo")
  .skip(10)
  .getMany();

将返回除了前 10 个 user 以外的所有 user 的 photos。

你可以组合这些方法:

const users = await getRepository(User)
  .createQueryBuilder("user")
  .leftJoinAndSelect("user.photos", "photo")
  .skip(5)
  .take(10)
  .getMany();

这将跳过前 5 个 users,并获取他们之后的 10 个 user。

take和skip可能看起来像我们正在使用limit和offset,但它们不是。一旦你有更复杂的连接或子查询查询,limit和offset可能无法正常工作。使用take和skip可以防止这些问题。