(User.create, findAll은 프로미스 이기 때문에 앞에 await 을 붙여줘야한다. 또는 뒤에 then 붙여줌.)
(위코드에서 married가 true 일때는 1, false 일때는 0이라고 했는데 고쳐줘야한다.
true, false 로 바꿔줘야한다.
> 를 나타내기 위해서는 시퀄라이즈의 Op.gt (greater)를 이용한다.
< 는 Op.lt, >=는 Op.gte, <=는 Op.lte
in [1,2,3] ==> 1,2,3, 중에 있나 찾아보는 것도 있다.
ne (not equal) ==> != 역할
상기 이것들은 Op 객체 (operater) 안에 들어있다.)
위와같이 한 객체에 같이 들어있으면 and로 묶이는 반면
or를 표현하기 위해서는 Op.or를 이용하여 위와같이 배열에 저장해야한다.
(위경우 순서를 의미하는 order를 js에서는 위와같이 사용한다.
배열로서 한가지 조건 뿐만아니라 두가지 조건 이상으로 정렬을 새로이 할 수 있다.)
(1순위 정렬과 2순위 정렬)
(where는 위에서 꼭 적어야한다. 모든 테이블이 적용되기 때문이다.)
(위 처럼 두가지 방법으로 1,3,5를 삭제할 수 있는데 아래처럼 하는것이 편하다. in operator 를 사용한 경우)
(이 경우는 5번 아닌 사람들은 모두 삭제)
(User.findOne이 비어있으면 맨 처음 객체가 가져와진다.
두번째의 경우 join 과 비슷하게 사용자와, comment를 같이 가져와 준다.
여러개를 가져오기 때문에 복수형이르 Comments를 console.log 함.
)
(위처럼 처음에 user를 User로 부터 찾고, 찾은 user를 getComments()와 같이 get+모델명을 이용하여 include 하지 않으면서 가져올 수 있게 된다.)
(뒤의 모델명을 바꾸고 싶으면 위처럼 as로 바꿀 수 있다.
대신 include 시에는 as 로 바꾼 모델명이 아니라 기본 모델명으로 include 해야한다.)
(include 시에도 where, attributes를 둘 수 있다. 위 경우 user의 where 가 아니라 댓글의 where 이다.
만약 user의 조건으로 where 를 넣어야 하는 경우 include 바깥족에 where 를 넣어줘야한다.
이때는 아랫부분 처럼 바깥으로 분리하는 것이 직관적일 것 같음)
(사용자를 먼저 만들고 사용자가 댓글을 쓰는 경우
방법 1 : Comment.create() 할 때 () 안에 User.id=1 이런식으로 넣으면 1번 유저의 댓글이 된다.
방법 2 : 데이터가 생성될때 방법 1 처럼 생성과 동시에 정해지는 것이 아니라 나중에 정해지는 경우가 있다. 그러면 나중에 .add + 모델명을 이용하여 그 사용자와 댓글이 연결된다. )
(위처럼 댓글여러개를 동시에 배열로 저장 할 수도 있다.
수정 삭제도 위와 같아 한다.
관계 쿼리에서 일반 쿼리에서와 달리 덜 헷갈리게 다른 단어를 사용함.)
(또한 직점 sql문을 쓸 수도 있다. 시퀄라이즈 자체에서 sql을 지원)