Nodejs - Mongoose(1)

이율곡·2023년 3월 3일
0

Node js

목록 보기
21/26
post-thumbnail

Mongoose

Mongoose는 Node.js에서 MongoDB를 더 편하게 다룰 수 있게 도와주는 라이브러리이다. 반환타입은 Promise로 반환한다.

간단한 예시 (스키마 정의)

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema {
	name: {
    	type: String,
        required: true
    },
    email: {
    	type: String,
        required: true,
        unique: true
    }
};

const User = mongoose.model('User', userSchema);

module.exports = User;

위의 코드는 Mongoose 라이브러리를 사용하여 유저 스키마를 만들고 유저 모델을 보내는 코드이다. 이전 MongoDB 보다 조금은 쉽게 스키마를 정의할 수 있다.

CRUD 사용하기

Create

const User = require('./models/user');

const user = new User({
	name: 'yulgok';
    email: 'yulgok@test.com'
});

user.save((err, savedUser) => {
	if (err) {
    	console.log(err);
    } else {
    	console.log(savedUser);
    }
});

위의 코드는 user 인스턴스를 생성하고 save() 메서드로 저장하는 예시이다. save() 메서드에서는 콜백함수로 에러와 결과를 확인했다.

Read

User.findOne({ email: 'yulgok@test.com' }, (err, user) => {
	if (err) {
    	console.log(err);
    } else {
    	console.log(user);
    }	
});

위의 코드는 조건을 지정하고 조건에 맞는 하나의 문서를 가져오는 예시이다. findOne() 메서드를 사용했다. 만약 조건에 맞는 문서가 여러 개일 경우에도 하나만 가져온다.

Update

User.updateOne(
	{ email: 'yulgok@test.com' },
    { name: 'yulgok1' },
    (err, result) => {
    	if (err) {
	    	console.log(err);
        } else {
            console.log(result);
        }
    }
);

위의 코드는 조건을 지정하고 조건에 맞는 문서 하나의 값을 변경하는 코드이다. updateOne() 메서드를 사용했다.

Delete

User.deleteOne({ email: 'yulgok@test.com' }, (err) => {
	if (err) {
		console.log(err);
    } else {
    	console.log('Success!');
    }
});

위의 코드도 마찬가지로 조건을 지정하고 해당되는 문서 하나를 삭제하는 코드이다. deleteOne() 메서드를 사용했다.

정리하기

Mongoose는 살짝 살짝 공부하긴 했지만 이번 기회에 정리했다. 확실히 MongoDB보다 편하게 코딩을 할 수 있다는 장점이 있다. 그렇기 때문에 MongoDB의 원리를 제대로 이해한 후 Mongoose를 사용하면 보다 효율적으로 사용할 수 있다는 생각이 든다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글