mongoose 공부하기 [1] - 간단한 설치 및 사용

김진성·2021년 10월 19일
1

MongoDB

목록 보기
1/7

Node.js의 Express를 공부하는데 많은 참고자료에서 MongoDB 기반 Mongoose를 통해서 DB를 생성하고 연결하는 것을 알 수 있었다. 그래서 Mongoose를 먼저 파헤쳐보고 추후에 Express와 MongoDB를 연결해보도록 하겠다.

Mongoose 설치 및 사용

기존에 생성해놓은 express-study 폴더를 통해서 mongoose를 설치해보자

$ npm install mongoose --save

설치 후 getting_started.js 파일을 생성해 아래와 같이 적어보자

const mongoose = require('mongoose');

main().catch(err => console.log(err));

async function main() {
	await mongoose.connect('mongodb://localhost:27017/test');
}

그런 다음 mongodb url을 통해 mongodb와 node.js를 연결시킬 수 있다.

Schema 및 Model 생성

mongoose에서는 Schema를 통해서 DB를 생성할 수 있다.

const kittySchema = new mongoose.Schema({
	name: String
});

DB의 목차는 name이고 그 안에 집어넣는 데이터의 형태는 String의 형태로 되어 있다. 이러한 Schema로 새로운 Kitten이라는 모델을 생성할 수 있다.

const Kitten = mongoose.model('Kitten', kittySchema);
const silence = new Kitten({name: 'Silence'});
console.log(silence.name);

Shema를 통해 Kitten이라는 모델을 생성했고 silence라는 Kitten의 인스턴스 생성을 통해서 데이터를 집어 넣었다.

Schema에 함수 집어넣기

kittySchema.methods.speak = function speak() {
	const greeting = this.name
    	? "Meow name is " + this.name
    	: "I don't have a name";
    console.log(greeing);
}

const = Kitten = mongoose.model('Kitten', kittySchema);

여기서 생성된 스키마에 methods.함수이름을 통해 함수를 집어넣었음을 알 수 있다.

const fluffy = new Kitten({name: 'fluffy'});
fluffy.speak();

MongoDB에 데이터 저장 및 찾기

우리가 fluffy라는 말하는 고양이를 생성하기는 했지만 실제 MongoDB 상에는 저장된 것이 아니다. 따라서, Mongoose의 save(), find() 함수로 데이터를 저장하고 찾을 수 있다.

await fluffy.save();
fluffy.speak();

const kittens = await Kitten.find();
console.log(kittens);

// 만약 특정 이름으로 찾으려 한다면, 스키마 형태에 맞게 쿼리를 하면 된다. 
await Kitten.find({name: /^fluff/});

이번에는 간단하게 Mongoose를 사용하는 방법에 대해서 사용했는데 다음에는 Mongoose의 기본이 되는 Schema부터 자세하게 공부할 예정이다.

profile
https://medium.com/@jinsung1048 미디엄으로 이전하였습니다.

0개의 댓글