본문 바로가기
서버 개발

MongoDB 연결하기

by 현댕5697 2021. 4. 21.
반응형

MongoDB를 Node.js에 연결하는 방법은 여러가지가 있지만 그 중에서도 mongoose를 이용하여 연결하는 방법을 정리하고자 한다.

 

mongoose는 크게 4가지 단계로 이루어진다.

 

1. 데이터 베이스 연결

const mongoose = require('mongoose');
const url = 'mongodb://localhost:27017/Moviest';
mongoose.connect(url);

const db = mongoose.connection;
db.on('error', (err)=>{
	//error handling
});
db.once('open', ()=>{
	//db handling
});

 

2. 스키마 정의

- 스키마: 도큐먼트의 타입과 형태를 정의

- 타입: String, Number, Data, Buffer, Boolean, Mixed, ObjectId, Array

const MovieScheme = mongoose.Schema({
	title: String,
	director: String,
	year: Number,
	Synopsis: String
});

 

3. 스키마에서 모델 생성

// movies collection
const Movie = mongoose.model('Movie', MovieScheme);

- MovieScheme을 사용하는 'Movie'라는 이름의 모델을 생성

 

4. 모델을 이용해서 데이터 다루기

1) 도큐먼트 추가

// 방법 1
const movie1 = new Movie({title:"인터스텔라", director:"크리스토퍼 놀란", year: 2014});
movie1.save((err, result, rows)=>{
	if(err){
		console.errror('error: ', err);
	}
	else{
		console.log('success');
	}    
});

// 방법 2
Movie.create({title:"인터스텔라", director:"크리스토퍼 놀란", year: 2014}, (err, res)=>{
	if(err){
		console.error('error: ', err);
	}
	else{
		console.log('success: ', res);
	}   
});

2) 도큐먼트 찾기

// callback 방식
Movie.find({year:{$gt:2010}}, (err, docs)=>{
	console.log(docs);
});

// promise 방식
Movie.find({title:"인터스텔라"}).
	then((docs)=>{
		console.log(docs);
	},
	rejected
);

3) 도큐먼트 수정하기

Movie.update({director:"크리스토퍼 놀란"}, {$set:{director:"christopher nolan"}})
	.then(
    	(docs)=>{
			// docs handling
		},
		(err)=>{
			//error handling
		}
	);

// 개별 도큐먼트 객체에서 데이터 수정 후 저장
Movie.findOne({title:"아바타"}).exec((err, doc)=>{
	// 수정
    doc.title = 'Avata';
	// 저장
    doc.save((err, project)=>{});
})

4) 도큐먼트 삭제하기

// 전체 도큐먼트 중에서 특정 하나 찾아서 삭제
Movie.remove({director:"크리스토퍼 놀란"})
.then(resolved, rejected);

// 개별 도큐먼트에서 삭제
Movie.findOne({title:"아바타"}).exec(()=>{
	doc.remove((err, product)=>{
		console.log('remove success: ', product);
	});
});

 


 

* 본 게시물은 Tacademy 영상을 참고하여 작성되었습니다.

tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=71

 

Node.js 프로그래밍 | T아카데미 온라인강의

Node.js를 이용해서 모바일 서비스에 필요한 서버 작성하는 방법을 다룹니다. 비동기 I/O와 이벤트 기반의 자바 스크립트와 Node.js 아키텍처 구조, Node.js 코어..

tacademy.skplanet.com

 

반응형

'서버 개발' 카테고리의 다른 글

개발 방법론에 대해 알아보자  (0) 2021.05.16
OAuth로 구글 로그인을 구현해보자  (0) 2021.05.08
Express란 무엇일까?  (0) 2021.04.20
JSON과 XML에 대해 알아보자  (0) 2021.04.19
Node.js 이해하기  (0) 2021.04.19

댓글