sequelize order multiple times

broccoli·2021년 6월 29일
0

sequelize

목록 보기
4/7
post-thumbnail

환경

  • MySQL : 8.0.23
  • sequelize: 6.6.2
  • node: 14.15.1

sequelize를 사용하면 편하긴 한데, orderby 하거나 join시 좀 제약을 가하려고 하는 등의 기능을 찾으려고 하면 불편할때가 종종 있다. 이번엔 order by 때문에 좀 불편했다.

버그인지 아닌지는 잘 모르겠으나 관련 이슈는 아래 링크에 있다.
"order by" appeared twice... 나 같은 경우는 literal을 사용해서 추가로 서브쿼리를 select절에 추가했는데, 이 추가한 알리아스로 order by를 해야했다.

그런데 order by가 두번에 걸쳐서 발생했다. from 절에 있는 서브쿼리에는 order by를 할 필요가 전혀없는데 order by가 됬음....

기존

order는 배열형식으로 넣어야하는데, 이런경우 추가한 컬럼은 Post모델에 없던거라서 에러 발생함.

// ordering 두번씩 불필요하게 발생함. 더군다나 추가한컬럼은 기존 모델에 없던 컬럼이라서 Post.추가한컬럼이라는 것을 찾으면서 오류발생함. 
const posts = await Post.findAll({
  order: [['추가한컬럼', 'DESC']],
  ...
})

수정

두번씩 order by되는 것은 수정할수없었음. 하지만 추가한 컬럼으로 order by 가능함.

// ordering 두번씩 불필요하게 발생하는건 어쩔수 없으나, 하드코딩된 것으로 order by가 되기때문에 없는 컬럼을 엉뚱한데서 찾는 오류는 발생하지 않음.
const posts = await Post.findAll({
  order : literal('updatedAt DESC'),
  ...
})

참고링크

profile
🌃브로콜리한 개발자🌟

0개의 댓글