MongoDB Atlas 가입과 초기 세팅 법은 인터넷에 잘 나와 있으니 패스한다.

Database란?

데이터를 일정한 형식으로 저장할 수 있게 도와주는 곳이라 보면 된다.
ex) 엑셀
엑셀에서는 시트를 하나 만든 후 행과 열에 원하는 데이터를 기입하면 자료 저장이 된다.
데이터베이스도 동일하지만 SQL이라는 언어를 써서 데이터를 입, 출력한다.

나는 javascript 기반으로 쓰고 싶기도 하고, 프론트를 목표로 하고 있기 때문에 object 자료형으로 데이터를 저장 해 주는 NoSQL언어를 사용하는 DB를 배우기로 했다.

DB 접속하는 URL 찾아오는 법

  1. 메인화면 세팅 끝나고 CONNECT라고 적힌 작은 흰색 버튼 누르기
  2. 가운데 Connect Your Application 버튼 누르기
  3. Choose your driver version 에서 Node.js 선택 잘되어 있는지 확인하기
  4. (2) 아래 접속 URL(Connect String) 뜬 거 메모장에 저장해두기

Server.js에서 DB 접속하기

  1. 터미널 켜서 npm install mongodb 입력해서 라이브러리 설치하기
    (MongoDB 접속 도와주는 라이브러리)
  2. server.js 상단에 아래 코드 추가하기
const MongoClient = require('mongodb').MongoClient;
  1. 하단에 아래 코드 입력하기
MongoClient.connect('메모장에 저장해둔 URL',function(err, client) {
	if (err) return console.log(err);
    //서버 띄우는 코드 여기로 이동시키기
    app.listen('8080', function(){
    	console.log('8080번으로 서버 띄우는 중')
  	})
});

메모장에 저장해둔 URL에 패스워드 입력란 <password>를 지우고 패스워드를 입력한다.
그리고 app.listen 코드를 안쪽으로 옮겨주면 된다.

MongoDB에 자료 저장하기

database/ collection 만들기

  1. MongoDB Atlas 메인 대시보드에 Collection 버튼을 누른다.
  2. Add my own data 버튼을 누른다. (이미 생성한 적이 있으면 create database)
  3. database 이름, collection 이름을 하나씩 정해서 create를 누른다.
    (나는 database 이름을 todoapp, collection 이름은 post라고 지었다.)
    (database는 하나의 폴더, collection은 하나의 엑셀 파일이라고 생각하면 된다.)

server.js에 코드 작성해서 db와 통신하기

let db;

MongoClient.connect('메모장에 저장해둔 URL',{ useUndifiedTopology: true }, function(err, client) {
	if (err) return console.log(err);
    db = client.db('todoapp');
    
    app.listen('8080', function(){
    	console.log('8080번으로 서버 띄우는 중')
  	})
});

위 코드를 상단에 작성해준다.

{ useUndifiedTopology: true } 쓰면 워닝 메세지를 제거해준다.
let db;로 전체에서 쓸 수 있는 전역 변수를 만들고, client.db('todoapp')으로 todoapp이라는 database에 접속해달라는 명령을 내린 것이다.

collection에 자료 추가하기

let db;

MongoClient.connect('메모장에 저장해둔 URL',{ useUndifiedTopology: true }, function(err, client) {
	if (err) return console.log(err);
    db = client.db('todoapp');
    
    db.collection('post').insertOne( { name: 'changhyeon', _id :  100}, function(err, result) {
    	console.log('저장완료');
   	});
    
    app.listen('8080', function(){
    	console.log('8080번으로 서버 띄우는 중')
  	})
});

코드 중간에 새로운 코드 세줄을 작성했다. DB에 자료를 추가할 일이 있을 때마다 작성하면 된다.
db.collection('post') 라는 것은 collection 중에 post를 선택한다는 뜻이고, insertOne을 붙이면 자료를 추가할 수 있다.(Object 자료형식으로 추가할 수 있다.)
insertOne 함수는 insertOne(추가할 자료, 콜백함수) 형식으로 작성한다.

_id를 붙이는 이유

MongoDB에서는 자료를 서로 구분하기 위해 _id가 꼭 있어야한다.
일종의 출석번호 느낌이라고 생각하면 쉽다.
이걸 직접 작성해줘야 하는데, 작성을 안하더라도 자동으로 만들어준다.
_id: ~이렇게 임의로 고유 id를 만들어주는데, 깔끔하게 보이는게 좋기 때문에 _id:1 이런식으로 번호를 붙여 저장한다.

profile
꾸준한 기록을 통해, 좋은 개발자가 되겠습니다.

0개의 댓글