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'),
...
})