모르고 지나쳤을 수도 있는 Sequalize 메소드

모르고 지나쳤을 수도 있는 Sequalize 메소드

Front-end developer WONISM
Interested in ReactJS, RxJS and ReasonML.

IS NOT NULL 조건 주기

where절에 들어갈 객체의 에서 IS NOT NULL이 되어야 할 컬럼의 값을 { ne: null }로 준다. column_namenull이 아닌 Row들을 구할 수 있다.

TableName
  .findAll({
    where : { column_name: { ne: null } }, // ne : Not Equal
  })
  .then((rows) => {
    // Do something
  })
  .catch((err) => {
    // Do something
  });

nenot equal을 뜻하며, 이외에도 gt(greater than), lt(less than), in(where in Array), like 등이 있다.

INSERT 전에 존재 여부 체크하기

findOrCreate메소드는 Sequelize에서 RowINSERT하기 전에 존재하는지 여부를 체크한다.
그 다음, Row가 존재하면 INSERT하지 않고, 존재하지 않으면 INSERT한다.
이전에 개인 프로젝트를 진행할 때 이러한 처리를 로우 쿼리로써 해결했었지만, findOrCreate메소드가 있었다.

TableName
  .findOrCreate({
    where : { column_name: 'VALUE1' },
    defaults: { column_name: 'VALUE1', column_name2: 'VALUE2' },
  })
  .then((rows) => {
    // Do something
  })
  .catch((err) => {
    // Do something
  });

TableName 테이블에 where 에 해당하는 Row가 있으면, INSERT하지 않고, 해당하는 Row가 없으면, default에 있는 값들을 INSERT한다.

Increment integer 인 값을 1 증가 시키기

/* import sequelize from 'sequelize'; */

TableName
  .update({
    increment_attribute: sequelize.literal('increment_attribute + 1'),
  }, {
    // Query options
  })
  .then((rows) => {
    // Do something
  })
  .catch((err) => {
    // Do something
  });