노드 학습 14일차
시퀄라이즈 쿼리 함수 정리
생성
Model.create()
함수를 통해 생성.
await 구문을 통해 생성된 데이터를 변수로 저장 가능.
예시)
1
2
3
4
5
6
7
const user = await User.create(
{
username: 'alice123',
isAdmin: true,
},
{ fields: ['username'] },
);
조회
findAll()
await 구문을 필요로 합니다.
기본 구문 예시)
1
const users = await User.findAll();
특정 컬럼만 조회)
1
2
3
Model.findAll({
attributes: ['foo', 'bar'],
});
집계 함수 사용)
1
2
3
Model.findAll({
attributes: ['foo', [sequelize.fn('COUNT', sequelize.col('hats')), 'n_hats'], 'bar'],
});
Model 테이블에서 foo, bar 컬럼을 조회하고, hats 컬럼의 총합을 n_hats 라는 별칭으로 조회
특정 컬럼을 제외한 조회)
1
2
3
Model.findAll({
attributes: { exclude: ['baz'] },
});
findOne
하나의 데이터만 조회합니다.
1
const user = User.findOne({});
하나의 값만을 찾는데 조건이 비어있다면 DB에서 조회된 최상위 데이터를 반환합니다.
WHERE
sequelize
모듈의 Op
객체를 통해 조건절을 구체화 하여 사용할 수 있습니다. 여기서 Op
는 오퍼레이터의 약자 입니다.
기본 예시)
1
2
3
4
5
Post.findAll({
where: {
authorId: 2,
},
});
Op 객체의 연산자
Op 객체의 기능이 많아서 별도 작성합니다.
수정
Model.update()
구문으로 수정.
where 조건이 없으면 모든 데이터가 수정되어 버리기 때문에 주의
1
2
3
4
5
6
7
8
await User.update(
{ lastName: 'Doe' },
{
where: {
lastName: null,
},
},
);
삭제
Model.destroy()
구문으로 삭제 where 조건이 없으면 모든 데이터가 삭제될 수 있기 때문에 주의
1
2
3
4
5
await User.destroy({
where: {
firstName: 'Jane',
},
});
TRUNCATE 를 사용하는 경우
1
2
3
await User.destroy({
truncate: true,
});
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.