<-->
본문 바로가기

프로그래밍/데이터베이스

mongoDB와 mongoose

반응형

Pixabay로부터 입수된 quhl님의 몽구스 입니다.

 

mongoDB

 

몽고디비는 NoSQL 도큐먼트형 데이터 베이스이다.

데이터를 도큐먼트 단위로 저장하며

따로 테이블을 작성하지않아도 원하는 필드와 값을 넣을 수 있다.

//한개의 도큐먼트
{ 
    name:"noodler",
    email:"email@gmail.com",
    favorite:"fishing"
}

 

Mongoose

 

mongoose는 NodeJSmongoDB 사이를 

연결해주는 ODM(Object Document Mapper)이다.

Schema를 지원해(mongoDB에는 없음)

객체지향구조를 보장하고 mongoDB의 CRUD를 지원한다.

 

 

mongoose.Schema

 

mongoDB의 도큐먼트 안에 어떤 값이든 들어갈 수 있다.

하지만 name에 숫자만 입력하거나  중복된 email 주소를 입력하는등

예상치 못한 입력을 방지하고

일관성을 유지하기 위해 스키마를 사용한다.

또한 메소드도 선언할수있어서 클래스 정의랑 비슷한 역할을 한다

const mongoose = require("mongoose");
const {Schema} = mongoose;

const userSchema = new Schema({ //Schema 생성
    name: {
        type:String, //String type만 입력받음
        required
    },
    email: {
        type:String, 
        unique, //중복 방지 속성
        required
    }
})

userSchema.methods.getName = function(){ //메소드 생성
    let user = this; // getName을 호출한 인스턴스를 가리킴
    return user.name;
}