포스트

노드 학습 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 연산자 정리

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 라이센스를 따릅니다.