TypeOrm / / 2024. 11. 11. 23:22

TypeOrm FindManyOptions

findManyOptions는 TypeORM에서 여러 엔티티를 조회할 때 사용하는 옵션 객체입니다. 이 객체를 사용하여 데이터베이스 쿼리에 다양한 조건과 설정을 적용할 수 있습니다. 주요 옵션들을 상세히 설명드리겠습니다.

  1. where:

    • 설명: 조회 조건을 지정합니다. 객체 형태로 컬럼과 값을 매핑하거나, 배열 형태로 여러 조건을 지정할 수 있습니다.

    • 예시:위의 예시는 name이 "John"인 사용자들을 조회합니다.

        const users = await userRepository.find({
          where: { name: "John" }
        });
  2. relations:

    • 설명: 관계된 엔티티를 함께 로드할 때 사용합니다. 배열로 관계 엔티티의 이름을 지정합니다.

    • 예시:사용자와 함께 profile, posts 관계를 로드합니다.

        const users = await userRepository.find({
          relations: ["profile", "posts"]
        });
  3. order:

    • 설명: 결과를 정렬할 때 사용합니다. 객체로 컬럼과 정렬 방식을 지정합니다.

    • 예시:name은 오름차순, age는 내림차순으로 정렬합니다.

        const users = await userRepository.find({
          order: { name: "ASC", age: "DESC" }
        });
  4. skip:

    • 설명: 조회 결과에서 처음 N개의 항목을 건너뜁니다. 페이징에 사용됩니다.

    • 예시:처음 10개의 항목을 건너뛰고 조회합니다.

        const users = await userRepository.find({
          skip: 10
        });
  5. take:

    • 설명: 조회할 최대 항목 수를 지정합니다.

    • 예시:최대 5개의 사용자만 조회합니다.

        const users = await userRepository.find({
          take: 5
        });
  6. select:

    • 설명: 조회할 컬럼을 선택적으로 지정합니다. 배열로 컬럼 이름을 나열합니다.

    • 예시:id, name, email 컬럼만 조회합니다.

        const users = await userRepository.find({
          select: ["id", "name", "email"]
        });
  7. cache:

    • 설명: 쿼리 결과를 캐싱할지 여부를 지정합니다. true 또는 밀리초(ms) 단위의 숫자를 입력합니다.

    • 예시:결과를 60초 동안 캐싱합니다.

        const users = await userRepository.find({
          cache: 60000// 60초 동안 캐싱
        });
  8. join:

    • 설명: 복잡한 조인을 수행할 때 사용합니다. 별칭(alias)과 조인 조건을 세부적으로 지정합니다.

    • 예시:userprofile을 조인하여 조회합니다.

        const users = await userRepository.find({
          join: {
            alias: "user",
            leftJoinAndSelect: {
              profile: "user.profile"
            }
          }
        });
  9. withDeleted:

    • 설명: soft-delete된 엔티티를 포함하여 조회할지 결정합니다.

    • 예시:삭제된 사용자까지 포함하여 조회합니다.

        const users = await userRepository.find({
          withDeleted: true
        });
  10. loadRelationIds:

    • 설명: 관계된 엔티티의 전체 객체 대신 ID만 로드합니다.

    • 예시:관계 엔티티의 ID만 가져옵니다.

        const users = await userRepository.find({
          loadRelationIds: true
        });
  11. lock:

    • 설명: 쿼리에 잠금(lock)을 적용합니다. optimistic 또는 pessimistic 잠금을 사용할 수 있습니다.

    • 예시:낙관적 잠금을 적용하여 버전 1인지 확인합니다.

        const users = await userRepository.find({
          lock: { mode: "optimistic", version: 1 }
        });
  12. comment:

    • 설명: 쿼리에 주석을 추가합니다. 디버깅이나 로깅에 유용합니다.

    • 예시:쿼리에 "Fetching active users"라는 주석이 추가됩니다.

        const users = await userRepository.find({
          comment: "Fetching active users"
        });

'TypeOrm' 카테고리의 다른 글

TypeOrm 주요메서드  (0) 2024.11.12
TypeOrm 관계 설정 옵션  (0) 2024.11.11
TypeOrm FindManyOptions  (0) 2024.11.11
TypeOrm Relationship  (0) 2024.11.09
TypeOrm Inheritance  (1) 2024.11.08
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유