반응형
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
반응형
'서버 개발' 카테고리의 다른 글
개발 방법론에 대해 알아보자 (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 |
댓글