获得原始结果

使用选择查询构建器可以获得两种类型的结果:entitiesraw results。大多数情况下,你只需要从数据库中选择真实实体,例如 users。为此,你可以使用getOnegetMany。但是,有时需要选择特定数据,例如 sum of all user photos。这些数据不是实体,它被称为原始数据。要获取原始数据,请使用getRawOnegetRawMany。例如:

  1. const { sum } = await getRepository(User)
  2. .createQueryBuilder("user")
  3. .select("SUM(user.photosCount)", "sum")
  4. .where("user.id = :id", { id: 1 })
  5. .getRawOne();
  1. const photosSums = await getRepository(User)
  2. .createQueryBuilder("user")
  3. .select("user.id")
  4. .addSelect("SUM(user.photosCount)", "sum")
  5. .where("user.id = :id", { id: 1 })
  6. .getRawMany();
  7. // 结果将会像这样: [{ id: 1, sum: 25 }, { id: 2, sum: 13 }, ...]