Node.js 기초(3) - MongoDB 모델 만들기
[Mongoose로 User 모델링하기]
MongoDB는 NoSQL이다. 이는 RDMS처럼 고정 Schema가 존재하지 않는다는 뜻으로 같은 Collection 내에 있더라도 document level의 다른 Schema를 가질 수 있다는 의미이다.
이는 자유도가 높아서 유연한 사용이 가능하다는 장점이 있지만 명시적인 구조가 없기 때문에 어떤 필드가 어떤 데이터 타입인지 알기 어려운 단점이 있다. Mongoose는 이러한 문제를 보완하기 위해서 Schema를 만들고, 그 Schema로 Model을 만든다.
Schema란?
MongoDB에 저장되는 document의 Data 구조. 즉, 필드 타입에 관한 정보를 JSON 형태로 정의한 것으로 RDBMS의 테이블 정의와 유사한 개념이다.
User Model 만들기
1. Models 폴더 만들고 User.js 생성
2. User 스키마 만들기
const mongoose = require('mongoose');
const userSchema = mongoose.Schema({
name: {
type: String,
maxlength: 50
},
email: {
type: String,
trim: true, // 중간 공백제거
},
password: {
type: String,
minlength: 5
},
lastname: {
type: String,
maxlength: 50
},
role: {
type: Number,
default: 0
},
image: String, // 타입만 써도 가능
token: {
type: String
},
tokenExp: {
type: Number
}
})
3. User 모델 만들기
const User = mongoose.model('User', userSchema)
다른 곳에서 쓸 수 있도록 exports 해준다
module.exports = { User }
Comments