반응형
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 |
---|