MongoDB Atlas ,Mongoose 연결, 초기세팅법

Taro·2023년 12월 13일
0

MongoDB

목록 보기
5/5

MongoDB란?

기존의 테이블 기반 관계형 데이터베이스 구조 ( SQL ) 이 아닌 문서지향 데이터 모델을 사용하는 대표적인 (NoSQL) 이다

MongoDB 사용법에는 크게 2가지가 있다

  1. MongoDB 에서 서비스하는 클라우드 (Atlas)를 사용한다

  2. 컴퓨터에 직접 MongoDB 를 설치해서 사용한다

우선 첫번째 방법부터 알아보자

1. Atlas 이용해보기

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 
  • default 이름은 cluster0 임

 

다시 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를 넣어주고 실행시키면 접속된다!

2. Mongoose 를 사용하여 MondoDB 에 접속해보기

이번에는 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 사용시

  1. Mongoose를 사용하여 MondoDB 를 사용할 경우
    보다 엄격하게 데이터 검증을 할 수 있다

  2. 코드 작성시 타입힌트를 받아서 좀더 편리하다
    -> TypeScript 사용시 보완가능

Atlas 사용시

  1. DB 입출력 문법을 Mongoose documentQuery 로 변환할 필요가 없다
  2. 입출력 속도가 좀더 빠르다

각자 편한것을 사용하면 될것같다

profile
기록하며 공부하는곳

0개의 댓글