프로그래밍 언어/NODE JS

몽구스 사용하기

· 코딩마이데이

MySQL에 시퀄라이즈가 없다면 몽고디비에는 몽구스(Mongoose)가 있습니다.

몽구스는 시퀄라이스와 달리 ODM(Object Document Mapping) 이라고 부릅니다. 몽고디비는 릴레이션이 아니라 다큐먼트를 사용하므로 ORM이 아니라 ODM입니다.

몽고디비 자체가 이미 자바스크립트인데도 굳이 자바스크립트 객체와 매핑하는 이유가 궁금할 것입니다. 그 이유는 몽고디비에 없어서 불편한 기능들을 몽구스가 보완해주기 때문입니다.

먼저 스키마(schema)라는 것이 생겼습니다. 몽고디비는 테이블이 없어서 자유롭게 데이터를 넣을 수 있지만, 때로는 자유로움이 불편함을 초래합니다. 실수로 잘못된 자료형의 데이터를 넣을 수도 있고, 다른 다큐먼트에는 없는 필드의 데이터를 넣을 수도 있습니다. 몽구스는 몽고디비에 데이터를 넣기 전에 노드 서버 단에서 데이터를 한 번 필터링하는 역할을 합니다.

또한, MySQL에 있는 JOIN 기능을 populate라는 메서드로 어느 정도 보완합니다. 따라서 관계가 있는 데이터를 쉽게 가져올 수 있습니다. 비록 쿼리 한 번 에 데이터를 합쳐서 가져오는 것은 아니지만, 이 작업을 우리가 직접 하지 않아도 되므로 편리합니다.

PS2015 프로미스 문법과 강력하고 가독성이 높은 쿼리 빌더를 지원하는 것도 장점입니다.

그럼 몽구스는 실습을 위한 새 프로젝트를 생성하겠습니다. learn-mongoose 폴더를 만들고, 그 안에 package.json을 생성합니다.

{
  "name": "learn-express",
  "version": "0.0.1",
  "description": "몽구스를 배우자",
  "main": "app.js",
  "scripts": {
    "start": "nodemon app"
  },
  "author": "ZeroCho",
  "license": "WIT"
}

 

이제 몽구스와 필요한 패키지를 설치합니다.

$ npm i express nunjucks mongoose
$ npm i -D nodemon

'프로그래밍 언어 > NODE JS' 카테고리의 다른 글

스키마 정의하기  (0) 2025.09.29
몽고디비 연결하기  (1) 2025.09.26
CRUD 작업하기  (0) 2025.09.20
데이터베이스 및 컬렉션 생성하기  (0) 2025.09.17
컴퍼스 설치하기  (0) 2025.09.14