본문 바로가기

MongoDB

[MongoDB] Schema와 Model

안녕하세요 명절 잘 보내고 돌아왔습니다!

 

오늘은 MongoDB의 스키마와 모델이라는 것에 대해 공부해 보려고 합니다.

 

스키마는 간단히 말하면 데이터 베이스에 생성할 데이터의 특성을 정의하는 것입니다.

 

스키마를 한 번 만들어 보겠습니다.

 

User.js

 

먼저 폴더를 하나 만들고 이름은 Models로 하겠습니다.

 

안에는 User.js라는 파일을 하나 만들어 줍니다.

 

먼저 몽구스 모듈을 불러와야 합니다.

 

const mongoose = require('mongoose');

 

이 코드 작성으로 몽구스 모듈을 사용할 수 있습니다.

 

const userSchema = mongoose.Schema({
    name:{
        type : String,
        maxlength:50
    },
    email:{
        type : String,
        trim : true,
        unique : 1
    },
    password : {
        type: String,
        minlength:5

    },
    lastname:{
        type : String,
        maxlength:50
    },
    role:{
        type: Number,
        default : 0
    }
}
)

 

스키마는 이렇게 만들 수 있습니다.

 

변수에 mongoose.Schema를 붙이고 괄호안에 정의하고 싶은 데이터를 코딩하면 됩니다.

 

type : String

 

type은 말 그대로 데이터의 타입이며

 

String, Number, Array 등이 올 수  있습니다.

 

maxlength:50 
minlength:5

 

maxlength와 minglength를 이용해서 데이터의 글자 수를 조정할 수 있습니다.

 

trim : true

 

trim은 공백을 제거해주는 특성입니다.

 

true로 설정하면 제거, false는 default 값이기 때문에 지정하지 않아도 됩니다.

 

unique : 1

 

unique는 데이터의 고유성입니다

 

1을 입력하면 중복 데이터를 만들 수 없습니다.

 

다음은 모델에 대한 개념입니다.

 

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

 

코드는 이렇구요.

 

모델은 스키마를 감싸서 하나의 묶음으로 사용하게 해줍니다.

 

module.exports = {User}

 

이렇게 exports를 통해서 모델을 내보내면

 

스키마를 다른 파일에서 이용할 수 있습니다.

 

감사합니다.