乐闻世界logo
搜索文章和话题

TypeORM 如何使用 querybuilder 选择特定列?

6 个月前提问
5 个月前修改
浏览次数19

1个答案

1

在 TypeORM 中,使用 QueryBuilder 来选择特定列是一个非常灵活的方式,可以帮助您更精确地控制查询的输出。这里我将通过一个具体的例子来展示如何使用 QueryBuilder 来选择特定的列。

假设我们有一个名为 User 的实体,它包含几个属性:id, firstName, lastName, email, 和 age

如果我们想要查询所有用户,但只需要 firstNameemail 这两列,我们可以按照以下步骤使用 QueryBuilder:

typescript
import { getRepository } from "typeorm"; async function getUsers() { const userRepository = getRepository(User); const users = await userRepository.createQueryBuilder("user") .select(["user.firstName", "user.email"]) .getMany(); return users; }
  1. 创建 QueryBuilder:首先,我们通过调用 getRepository(User).createQueryBuilder("user") 创建一个针对 User 实体的 QueryBuilder。这里 "user" 是我们给实体起的别名,后续的查询中将使用这个别名。

  2. 选择特定的列:使用 .select(["user.firstName", "user.email"]) 方法选择我们感兴趣的列。传递给 select 方法的是一个包含列名的数组,这些列名是以 "实体别名.列名" 的格式指定的。

  3. 执行查询:最后,调用 .getMany() 方法执行查询,并获取结果。这会返回一个包含选定列的用户数组。

这种方式非常适合在需要限制返回列的数量时使用,例如为了减少网络传输数据或者当某些数据不应该暴露给客户端时。使用 QueryBuilder 使得查询可以在不牺牲可读性和控制力的情况下,非常灵活地被构建和执行。

2024年6月29日 12:07 回复

你的答案