MongoDB란?
기존의 테이블 기반 관계형 데이터베이스 구조 ( SQL ) 이 아닌 문서지향 데이터 모델을 사용하는 대표적인 (NoSQL) 이다
MongoDB 사용법에는 크게 2가지가 있다
MongoDB 에서 서비스하는 클라우드 (Atlas)를 사용한다
컴퓨터에 직접 MongoDB 를 설치해서 사용한다
우선 첫번째 방법부터 알아보자
1
공식 홈페이지에서 회원가입한다 https://www.mongodb.com/atlas/database
FREE tier 로 설정해주자
접속용 Id , Password 설정해주기
Add My Current Ip Address 를 사용해도 되고
0.0.0./0 을 넣어서 모든 Ip 에서 접속가능하게 해도 된다
2
Node.js Express 와 MongoDB Atlas 연결하기
좌측 상단부 Database를 보면 만들어둔 Atlas 서버가 있을것이다
이쪽을 눌러보면
MongoDB Atlas uri 연결 기본양식이 있다
mongodb+srv://DB접속아이디:DB접속비번@test1.jea.mongodb.net/?retryWrites=true&w=majority
다시 express 서버로 돌아간다음에
$ npm install mongodb
mongoDB 설치 후
# server.js
const { MongoClient } = require('mongodb')
let db
const url = 'mongodb사이트에 있던 접속 URL'
new MongoClient(url).connect().then((client)=>{
console.log('DB연결성공')
db = client.db('forum')
app.listen(3000, () => {
console.log('http://localhost:3000 에서 서버 실행중')
})
}).catch((err)=>{
console.log(err)
})
이 구분에서 이전에 생성해둔 id, password 를 채운 URI를 넣어주고 실행시키면 접속된다!
이번에는 MongoDB 를 컴퓨터에 설치 후
Mongoose 를 이용하여 mongoDB 에 접속해보자
1
mongoDB Compass다운로드 공식홈페이지
https://www.mongodb.com/try/download/shell
MongoDB compass 는 DB 가 아니라 DB 를 가시적으로 볼수있게 해주는 GUI 프로그램 이라고 보면된다
Mongoose 다운로드
https://mongoosejs.com/
Mongoose 는 Node(framwork) 와 MongoDB 간의 연결을 도와주는 라이브러리라고 보면된다
mongoose 공식홈페이지에 가보면 기본적인 접속 코드 형식을 볼수있다
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test');
2
Express 와 MongoDB 연결하기
필요한 라이브러리 2개를 설치해준다
$ npm install mongoDb, mongoose
mongoose 를 moongoose 로 설치하는 등의 실수는 하지않도록 주의한다! 잘못된 라이브러리 설치시 해킹이슈 있음
import mongoose from 'mongoose';
import express from 'express';
const app = express();
app.use(express.json());
// JSON 형태의 요청 body를 파싱하기 위해 express.json() 미들웨어 사용
app.use(express.urlencoded({ extended: false }));
// 인코딩 된 request의 payload를 파싱해주는 미들웨어다.
const port = 3000;
mongoose.connect('mongodb://localhost/ex2').then(() => {
console.log('Connected to MongoDB');
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});
});
const mongoose = require('mongoose');
mongoose.connect('mongodb://<접속IpAddress>/<Schema name>');
MongoDB compass 설정
우린 locallhost 를 사용할것이므로 locallhost 및
기본 mongoDB 주소 27017 을 이용한다
이후 실행시켜보면 MongoDB 접속이 잘 되는것을 확인할 수 있다
Mongoose 사용시
Mongoose를 사용하여 MondoDB 를 사용할 경우
보다 엄격하게 데이터 검증을 할 수 있다
코드 작성시 타입힌트를 받아서 좀더 편리하다
-> TypeScript 사용시 보완가능
Atlas 사용시
각자 편한것을 사용하면 될것같다