얼음꽃의 일지

[JS] sequelize op 사용 본문

잡다한 지식

[JS] sequelize op 사용

얼음꽃 2023. 10. 26. 23:07
728x90

sequelize 설치가 되어있다는 가정 하에 제가 자주 쓰던 sequlize op 총 형태 모음집 입니다.

 

const {Op} = require('sequelize');
const db = require('../../?'); // 모델있는 위치

const arr = [1,2,3,4,5]; // order를 형성하기 위한 배열

let offset = 0;
  if (page > 1) {
    offset = (page - 1) * limit;
  }


const a = await db.table_name.findOne({
	attributes: 
    ['table_field_name', // 특정 필드명
      db.sequelize.fn('사용할 sql 함수', db.sequelize.col('table_field_name'), 'name'), // 함수 적용 값
      {exclude: 'table_field_name'} // 제외 할 필드명
    ],
    where: {
     'table_field_name' : {
     [Op.or] : [or condition] // or 연산할 조건
     [Op.and] : [and condition] // and 연산할 조건
     [Op.eq]: = // 조건과 같은 것 
     [Op.ne]: != // 조건과 다른 것
     [Op.is]: is // 조건과 같은 것인데 보통 null 이용          
     [Op.not]: is not // 조건과 다른 것인데 보통 null 이용 
     [Op.gt]: 'table_name_field > condtion // 조건보다 초과 
     [Op.gte]: 'table_name_field >= condtion // 조건보다 이상
     [Op.lt]: 'table_name_field < condtion // 조건보다 미만
     [Op.lte]: 'table_name_field <= condtion // 조건보다 이하
     [Op.between]: [a, b] a,b 범위 안 // between a and b ( b포함 X )
     [Op.notBetween]: [a, b] a,b 범위 밖 // not between a and b
     [Op.in]: [condition] condition 중 // 배열 안 조건에 부합
     [Op.notIn]: [condition] condition 제외 // 배열 안 조건 제외
     [Op.like]: like 'condition' // condition 앞, 뒤, 양쪽 % 18
     [Op.notLike]: not like 'condition' // condition 앞, 뒤, 양쪽 % 19 
     [Op.startsWith]: 'condition' // 'condition%' 20
     [Op.endsWith]: 'condition' <-- '%condition'21
     [Op.substring]: 'condition' <-- '%condition%' 22
     }
    }
    order: [['table_field_name', 'asc or desc'], [sequelize.fn('FIELD', sequelize.col('table_field_name'), arr))]] // 정렬(sorting)
    group: ['table_field_name'] // 그룹
    offset // 시작 페이지
    limit // 한번에 가져올 개수
    )

 

* p.s :  sequelize 만드는게 힘들때는 Raw Query를 먼저 작성해보고 그거에 필요한 값을 찾은 것도 방법입니다.

 

참고

https://sequelize.org/docs/v6/core-concepts/model-querying-basics/

 

Model Querying - Basics | Sequelize

Sequelize provides various methods to assist querying your database for data.

sequelize.org

 

728x90

'잡다한 지식' 카테고리의 다른 글

[JS] sequelize raw query 적용  (1) 2023.10.29
[JS] sequelize transaction 직접 걸기  (1) 2023.10.29
[JS] ioredis 라이브러리  (0) 2023.10.11
Sql 기본 문법 간단한 정리  (0) 2023.02.09
정규식  (0) 2023.01.10