몽구스 튜토리얼
몽구스
Node.js - 몽고DB ODM
mongoose란, mongoDB라는 NoSQL 데이터베이스를 지원하는 노드의 확장모듈입니다. mongoose는 mongoDB의 ODM입니다. ODM은 Object Document Mapping의 약자로, 문서를 DB에서 조회할 때 자바스크립트 객체로 바꿔주는 역할을 합니다. - edu.groom.io
SQL (Oracle, mysql 등) 에서는 ORM (Object relational mapping),
NoSQL (특히 document database인 몽고DB)에서는 ODM (Object document mapping)이라는 용어를 쓰는 듯하다.
클론하고 있는 웹 프로젝트에서 다음과 같이 db구성을 했다.
몽고 db랑 mongoose를 처음 써봐서 공식 홈페이지의 getting started 튜토리얼 을 정리해보려 한다.
튜토리얼
CRUD중 CR만 있는 초간단 튜토리얼!
(1) 프로젝트에 몽구스 라이브러리 설치하기
참고로 --save 옵션은 package.json의 dependencies에 해당 모듈 추가하라는 건데,
최신 버전은 기본으로 해주는 사항이라 --save생략해도 된다고 함.
실제로 해본 결과, mongoose만 설치하면 mongodb 패키지도 같이 설치됐다.
(2) 몽고db서버랑 연결하기
(3) 스키마 & 모델 생성
(mysql에서 create table 하는 과정에 상응한다)
The first argument is the singular name of the collection your model is for.
Mongoose automatically looks for the plural, lowercased version of your model name.
몽구스의 스키마에는 일반적인 프로퍼티 외에도 함수(behavior)를 추가할 수도 있다
( kittySchema.methods.speak = function(){ } 이런 식으로 )
(4) DB에 새로운 데이터 저장하기 ( document 생성 + save )
document는 model클래스의 인스턴스로 mysql에서 row 1개와 비슷한 것으로 보면 된다.
(5) DB에서 데이터 가지고오기 ( find )
기본적으로 몽고DB는 콜백으로 결과값을 반환하지만 몽구스는 프로미스를 지원한다고 한다.
save(), find() 메소드도 파라미터로 콜백함수를 주지 않는 한 기본적으로 프로미스다.
저 예시 코드들도 프로미스로 바꿀 수 있음