📜  部分选择 typeorm (1)

📅  最后修改于: 2023-12-03 15:12:27.723000             🧑  作者: Mango

部分选择 TypeORM

TypeORM是使用TypeScript编写的ORM(对象关系映射)框架,可帮助开发者轻松地与数据库交互。在这里,我们将介绍如何使用TypeORM的部分选择功能。

安装TypeORM

在使用TypeORM的部分选择功能之前,您需要安装TypeORM。您可以使用以下命令在您的项目中安装TypeORM:

npm install typeorm reflect-metadata
部分选择选项

TypeORM提供了几种选择方式,以返回所需的数据. 具体来说,它提供了以下选项:

  • columns
  • select
  • loadRelationIds
  • loadEagerRelations
  • relations
columns

使用Columns,您可以选择要从数据库中选择的列,如下所示:

const users = await userRepository.find({
  select: ["firstName", "lastName"],
  where: {
    id: 1
  }
})
select

使用Select,您可以过滤实体中的数据字段,如下所示:

const users = await userRepository.createQueryBuilder("user")
    .select(["user.firstName", "user.lastName"])
    .where("user.id = :id", { id: 1 })
    .getOne();
loadRelationIds

使用loadRelationIds,您可以加载实体关系的外键,如下所示:

const postsWithCommentIds = await postRepository.createQueryBuilder("post")
    .loadRelationIds()
    .where("post.authorId = :id", { id: 1 })
    .getMany();
loadEagerRelations

使用loadEagerRelations,您可以预加载关系属性,如下所示:

const postsWithAuthorAndComments = await postRepository.find({
  relations: ["author", "comments"]
});
relations

使用relations,您可以选择要加载的关系,如下所示:

const postsWithAuthorAndComments = await postRepository.createQueryBuilder("post")
    .leftJoinAndSelect("post.author", "author")
    .leftJoinAndSelect("post.comments", "comments")
    .where("post.id = :id", { id: 1 })
    .getOne();
结论

TypeORM的部分选择选项使您可以更加精细地控制从数据库中检索的数据。通过仔细选择要选择的列和关系,您可以改善应用程序的性能并减少不必要的网络流量。