Today I Learn/MongoDB

[MongoDB] Model & Schema 몽고디비 모델과 스키마

단추언니 2021. 10. 18. 21:50
반응형

Schema?

mongoDB는 테이블이 없기 때문에 실수로 오타를 내거나 데이터타입을 잘 못 입력해도 에러를 발생시키지 않는다.

이러한 문제를 막기 위해 몽구스는 스키마를 도입했다. 몽구스는 사용자가 작성한 스키마를 기준으로 데이터를 DB에 넣기 전에 먼저 검사하여 하나하나 지정해준다. 스키마에 어긋나는 데이터가 있으면 에러를 발생시킨다. 즉 테이블과 어느 정도 비슷한 역할을 한다

 

예제)

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
    },
    image: String,
    token: {
        type: String
    },
    tokenExp: {
        type: Number
    }   
})

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

module.exports = { User }

type: 데이터의 타입

trim: 띄어쓰기 미적용 여부 (true: 띄어쓰기 적용X)

unique: 중복값 여부 (1: 중복값 없음)

maxlength: 최대길이

minlength: 최소길이

default: 기본값

 

Model?

모델은 스키마를 감싸주는 역할을 하는, 스키마를 통해 만드는 인스턴스이다.

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

이 객체를 통해 DB에 실제 작업을 할 수 있게 된다. 이를 통해 데이터를 조회하거나, 추가하거나, 수정하거나, 삭제할 수 있다.

 

반응형

'Today I Learn > MongoDB' 카테고리의 다른 글

[MongoDB]노드 리액트 몽고디비 연결하기  (0) 2021.10.18