MongoDB는 NoSQL(Not only SQL) 데이터베이스이고, 해당 링크 에 너무나도 자세히 설명되어있으니 설명은 생략한다. 관계형DB가 아니기 때문에 고정된 Schema나 JOIN이 존재하지 않으며 데이터 구조가 key-value 형식으로 이루어진게 특징이다. 학교 다닐 때 MySQL을 찍먹해봤었는데 MongoDB는 처음 다뤄본다. 메인 로고인 이파리가 좀 귀엽다.
Mongoose는 Node.js와 MongoDB를 연결해주는 ODM이라고한다.
ODM(Object Document Mapping) : 객체와 문서를 1대1로 매칭하는 역할
정의를 살펴보니 더 알쏭달쏭해지지만, 어쨌든 MongoDB의 Document를 자바스크립트의 객체로 바꾸어주는 역할을 해준다고 한다. 결국 간단하게, 몽고 DB를 편하게 쓸 수 있는 Object Modeling Tool이다.
MongoDB 홈페이지에 회원가입을 진행한다. 나는 구글계정으로 회원가입을 했다.
cluster 생성
AWS에 가까운 지역이 좋다고 해서 Seoul (ap-northeast-2)로 체크하고 Cluster Tier
는 M0 Sandbox로 선택, cluster Name까지 지정한 뒤 생성한다.
user 생성
atlas -> connect -> user 생성 -> choose a connection method -> Add your connection string into your application code 복사 하는 과정을 순차적으로 진행해주면 된다.
위 과정 중에 혹시 ip관련 내용이 뜬다면 current ip를 추가해주어야한다. 추가 안했다가 넘어가질 않아 헤맸다.
mongoose 설치
npm install mongoose --save
설치 후 package.json 파일을 살펴보면 dependencies에 자동으로 mongoose 추가된 것을 볼 수 있다.
const mongoose = require("mongoose");
mongoose.connect("상단에서 복사한 application code 붙여넣기", {
userNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false,
});
index.js파일에 mongoose 관련 코드를 작성해주는 것이 필요한데, 위의 코드로 연결할 수 있다.
useNewUrlParser ~ useFindAndModify 까지는 연결 시 발생하는 에러들을 무찔러주는 코드이다.
연결 과정 중 아래와 같은 에러가 발생했다.
MongoParseError: options usecreateindex, usefindandmodify are not supported
이는, 몽구스 버전이 6.0이상이라면
userNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false,
등의 내용이 기본 디폴트로 들어있기 때문에(굿👍) 코드를 삭제하면 정상 작동된다.
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 를 공부하며 작성한 글입니다.