[221207] sequelize include에서의 attribute

뜨개발자·2022년 12월 7일
0

TIL

목록 보기
23/75
    const likes = await Like.findAll({
      where: {userId},
      attributes: [
        'postId',
        [Sequelize.col("Post.userId"), 'userId'],
        [Sequelize.col("Post.nickname"), "nickname"],
        [Sequelize.col("Post.title"), "title"],
        [Sequelize.col("Post.likes"), "likes"],
        [Sequelize.col("Post.createdAt"), "createdAt"],
        [Sequelize.col("Post.updatedAt"), "updatedAt"],
      ],
      order: [[Post, "likes", "DESC"]],
      include: [{model: Post, attributes: []}],
    });
    return res.status(200).json({data: likes});

include를 사용하여 테이블을 조인하는데, 메인 테이블이 아니라 조인되는 테이블의 특정 컬럼을 바탕으로 정렬을 할 필요가 있었다.

결론

조건 내부의 order 내에 이중배열 형태로 전달해주면된다.

위 코드에서 예를 들자면, order: [[Post, "likes", "DESC"]]부분인데, 이중배열 내에서 살펴보면 된다.
Post 테이블 내에서 likes 컬럼을 기준으로 DESC 방식으로 정렬한다.

profile
뜨개질하는 개발자

0개의 댓글