서버 구축 후에 프론트와 데이터를 주고받기를 본격적으로 설계할 때 CRUD메소드와 스페셜 메소드가 너무나 자주 쓰이므로 도큐먼트를 보면서 정리해보았다.
시퀄라이즈 Doc : model-querying-finders
: 조건에 맞는 행 모두 조회 => [] 안에 모델 인스턴스 객체를 넣어 반환
조건을 입력하지 않으면 전체 테이블 조회가 됨
: 조건에 맞는 첫번째 행 조회 => 모델 인스턴스 객체 반환
: pk가 1인 행만 조회 => 모델 인스턴스 객체 반환
: 조건에 맞는 행을 찾으면 조회 => 조건에 맞는 인스턴스 객체 반환(user)
: 없다면 default로 생성 => 생성 성공 여부를 boolean 값으로 반환(created)
=> 조건에 맞는 인스턴스의 수 반환(count)
: 조건에 맞는 행을 모두 조회 => [] 안에 모델 인스턴스 객체를 넣어 반환(row)
: 입력 값에 맞는 행을 생성
: 입력값에 맞는 여러 행을 동시에 생성 => [] 안에 생성된 모델 인스턴스 객체를 넣어 반환
: 조건에 맞는 행을 찾아 업데이트 => 모델인스턴스는 아닌듯.. 성공여부를 불린값으로..안나옴..
: 조건에 맞는 행을 찾아 삭제 => ... 안나옴
const user = await User.create({ name : yang })
const profile1 = await Profile.create({ age : 30 })
const profile2 = await Profile.create({ age : 20 })
=> 현재 user 인스턴스에 조인되어 있는 profile 모델의 테이블 가져오기
// 없으면 null => 해당 테이블 객체 반환
=> 현재 user 인스턴스의 조인되어 있는 profile 모델의 테이블을 profile1 으로 set 하기
=> 반환하는 객체 없음
=> 현재 user 인스턴스에 조인되어 있는 profile 모델의 관계 끊기(초기화 set)
=> 반환하는 객체 없음
=> 새롭게 profile 테이블을 생성해서 user 인스턴스에 조인시킨다.
=> 반환하는 객체 없음
const post1 = await Post.create({ title : ‘제목1’ })
const post2 = await Post.create({ title : ‘제목2’ })
=> user 인스턴스에 조인된 Post 테이블에 post1 인스턴스 추가하기
user.addPosts([post1, post2]) => user 인스턴스에 조인된 Post 테이블에 post1,2 인스턴스 추가하기
=> user 인스턴스에 조인된 Post 테이블 중 post1 인스턴스 제거하기
=> user 인스턴스에 조인된 Post 테이블 중 post1,2 인스턴스 제거하기
=> user 인스턴스에 post1 인스턴스가 조인되어 있는지 여부 반환(bool)
=> user 인스턴스에 post1,2 인스턴스가 조인되어 있는지 여부 반환(bool)
일대 다와 같다.