본문 바로가기
개발 학습/데이터베이스

Express와 몽고DB 연결 / DB 테이블 컬럼 생성 / CRUD

by StelthPark 2022. 1. 14.

<MongoDB 연결>

 

1. mongoDB 아틀라스라는 클라우드를 가입한다.

 

 

2. 데이터 베이스를 생성한다.

 

3. AWS든 Google Cloud든 아무거나 상관없이 선택 후 지역을 선택한다. 클러스터를 생성한다.

 

 

4. 유저를 생성한다. 입력한 아이디 비밀번호는 이후에 DB연결이나 mongo compass에서 사용된다.

 

 

5. DB에 접근가능한 IP를 지정할 수 있으며 0.0.0.0/0 으로 지정시 모든 포트와 IP가 접속가능하다.

 

6. 클러스터 0에 연결하기위해 Connect 

 

7. 내 코드를 사용해 MongoDB Compass나 node.js에서 접근할 수있다.

 

<MongoDB Compass 연결>

몽고DB 컴패스는 DB에 저장된 데이터들을 GUI로 보기 쉽게 해준다.

몽고DB 아틀라스에서 발급받은 본인 코드를 ID,PW,DB명을 입력하면 접속된다.

 

 

<MongoDB Express 연결>

const mongoose = require('mongoose')
mongoose.connect('mongodb+srv://아이디:패스워드@kift.q7pbt.mongodb.net/디비이름?retryWrites=true&w=majority', {
useNewUrlParser: true, useUnifiedTopology: true
}).then(() => {
app.listen(app.get('port'), () => {
console.log(`app is listening in http://localhost:${app.get('port')}`);
});
}).catch(err => console.log(err))

 

Server에서 최상위 index에 mongoose를 설치하고 발급받은 코드에 아이디,패스워드,디비이름을 수정한뒤 실행시킨다.

 

 

<MongoDB 테이블 생성 및 CRUD >

1. Server를 MongoDB에 연결시키고 models 폴더안에 생성할 테이블명으로 JS를 만든뒤 상단처럼 코드를 작성한다.

테이블 내부에 들어갈 컬럼들을 선언하고 versionKey 옵션을 통해 데이터생성시 버전키(v)를 추가할건지 선택할 수 있다.

기본적으로 테이블은 user로 주었지만 자동으로 복수형으로 저장되며 

collection 옵션을 통해 원하는 테이블명으로 정확히 만들수 있으나 옵션없이 만들면 s가 붙은 복수형 테이블명으로 생성된다.

데이터를 CRUD를 하기위해 위에 models안에서 만든 테이블을 require로 불러와주고 아래쪽에서 find나 CRUD를 하면된다.

 

 

댓글