age 부분이 조금 특이한데요. 시퀄라이즈는 자바스크립트 객체를 사용해서 쿼리를 생성해야 하므로 Op.gt 같은 특수한 연산자들이 사용됩니다. Sequelize 객체 내부의 Op 객체를 불러와 사용합니다. { [Op.gt]: 30 }은 ES2015 문법이니 2.1.3절을 참고하길 바랍니다.
자주 쓰이는 연산자로는 Op.gt(초과), Op.gte(이상), Op.lt(미만), Op.lte(이하), Op.ne(같지 않음), Op.or(또는), Op.in(배열 요소 중 하나), Op.notIn(배열 요소와 모두 다름) 등이 있습니다.
Op.or를 한번 사용해봅시다.
SELECT id, name FROM users WHERE married = 0 OR age > 30; const { Op } = require('sequelize'); const { User } = require('../models'); User.findAll({ attributes: ['id', 'name'], where: { [Op.or]: [{ married: false0 }, { age: { [Op.gt]: 30 } }], }, });
Op.or 속성에 OR 연산을 적용할 쿼리들을 배열로 나열하면 됩니다.
SELECT id, name FROM users ORDER BY age DESC; User.findAll({ attributes: ['id', 'name'], order: [['age', 'DESC']], });
시퀄라이즈의 정렬 방식입니다. order 옵션으로 가능합니다. 배열 안에 배열이 있다는 점에 주의하세요. 정렬은 꼭 컬럼 하나로만 하는 게 아니라 컬럼 두 개 이상으로 할 수도 있기 때문입니다.