No SQL = Not only SQL
No SQL categories
Documnet, Key-Value , Graph
MongoDB
Data 가 JSON-like-document로 저장됨
SQL 처럼 column과 row가 존재하지 않음
원하는 어떤 종류 , 어떤 모양의 데이터라도 저장가능
Mongoose
Mongoose는 Node.js 와 MongoDB를 연결해주는 ODM(Object Document Mapping) 중에서 가장 유명한 라이브러리.
DB 연결, Schema 정의 , Schema 에서 Model로 변환, Model을 이용한 Query
설치: npm install mongoose
Mongoose
Schema
=> MongoDB 에는 Schema가 없지만 Mongoose 에서 RDBMS 처럼
Schema를 정의 할 수 있다.
Document 내부의 각 field가 어떤 식으로 되어있는지를 정의
SQL의 table과 비슷한 개념
=> 사용성을 더 높이기 위해서.
Schema 정의
=>mongoose를 import
=>new mongoose.Schema()를 통해 생성가능
=>각 filed 별로 type.required unique 등의 옵션 선택 가능
Schema에서 Model로 변환
mongoose.model()
Mongoose - populate
Mongoose.populate()
=> 다른 collections의 data를 참조할 때 사용
=> RDBMS 에서는 JOIN을 하면 되지만 MongoDB에서는 JOIN을 할수 없다.
Mongoose -query (CREATE)
-> 비동기 함수이기 때문에 async-await, then(), callback등을
사용해서 코드 실행 순서를 반드시 보장해야 함
Mongoose - query (READ)
Mongoose- query (DELETE)