sequelize subquery 사용

JOO·2021년 12월 27일
1

실전프로젝트

목록 보기
3/12

sequelize subquery

sequelize를 사용할때는 subquery 구조를 잘짜는게 제일 중요한거같다. 정말 제대로된 쿼리문으로 원하는 데이터들을 잘 조합해서 완벽하게 받아오고 싶은데 아직 실력이 부족한것같다. 연습해야지

아래는 sequelize 사용하면서 기억에 남았던 부분들이다.

먼저 코드는 아래와 같다.

 const findedTrack = await Track.findOne({
      attributes: ["title", "trackId", "category", "trackThumbnailUrl", "trackUrl", "userId"],

      where: { trackId: findedTrackIds },
      include: [
        { model: TrackTag, attributes: ["tag"] },
        { model: User, attributes: ["nickname"] },
        {
          model: Like,
          attributes: [[sequelize.fn("COUNT", sequelize.col("Likes.trackId")), "likeCnt"]],
        },
        {
          model: Comment,
          attributes: [[sequelize.fn("COUNT", sequelize.col("Comments.trackId")), "commentCnt"]],
        },
      ],
      group: ["Track.trackId", "TrackTags.trackTagId", "Likes.likeId", "Comments.commentId"],
    });

1. model과 table 이름

가장 먼저봤던 것은 model의 이름은 단수형으로 사용하고, table의 이름은 복수형으로 사용한다는 것이다.
아래 코드를 보면 model의 이름을 입력하는 부분에는 단수형인 model의 이름이 그대로 들어가고, table의 이름이 들어가는 부분은 복수형으로 사용된다.

2. subquery

subquery를 사용해서 다른 table들에서 원하는 데이터들을 불러왔다. 이때 include: []를 사용해서 불러온다. 직접적으로 관계가 없으면 불러올 수 없지만 include: [ include: [] ] 이런식으로 연결지어서 타고타고 갈 수 있다.

profile
개발공부 기록

0개의 댓글