반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 객체지향프로그래밍
- 플랙스박스기본
- 관계형데이터베이스
- Flex Box 기본
- HTML5
- Hooks
- 리액트
- Eclipse
- SQL 명령어
- 노마드코더
- SQL 연산자
- node.js
- 람다식
- spring
- java설치
- SQL
- 오산대맛집
- 스프링
- spring 환경설정
- Flexbox Froggy
- SQL 문제
- 환경설정
- ubuntu
- REACT
- 이클립스
- 자바스프링
- 타입
- java spring
- 자바 스프링
- numpy
Archives
- Today
- Total
이것저것
MongoDB Model과 Schema 본문
반응형
SMALL
Model이란?
Schema를 감싸주는 역할을 한다.
그러면 Schema는??
어떠한 상품에 관련된 글을 작성한다고 하면
글을 작성한 사람은 누구인지
작성을 할때 post의 이름은 무엇인지
즉, Model의 상세정보를 하나하나 지정해주는 것을 Schema라고 한다.
//스키마 예시
const productSchema = mongoose.Schema({
writer : {
type: Schema, Types.ObjectId,
res: 'User'
},
title: {
type: String,
maxlength: 50
},
description: {
type: String
}
}, { timestamps: true })
user Model 만들기.
Model 폴더를 만들고 안에 User.js를 생성한다.
const mongoose = require('mogoose');
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 }
trim은 스페이스를 없애주는 역할을 한다.
unique는 말그대로 유일성을 부여하는 것이다.
role은 어떤 유저가 일반유저인지 관리자인지 속성 부여해줄수있다. ()
token은 나중에 유효성과 같은 기능을 관리할 수 있다.
tokenExp는 토큰의 유효기간을 설정할 수 있다.
마지막에서 두번째 줄은 Schema를 Model로 감싸는 것이다.
mongoose.model에 스키마명과 스키마를 써준다.
마지막은 다른 곳에서 위의 스키마를 쓰고 싶으니 export를 해주는것이다.
반응형
LIST
Comments