[Mongodb] mongoose schema / model

김민재·2024년 4월 2일

mongodb

목록 보기
6/8

schema

  • mongodb는 nosql이다. 즉, 관계가 없다. document에 아무거나 넣어도 에러가 생기지 않는다. 실수로 오타 데이터가 들어가기도 하고, 같은 필드인데 자료형이 다른 경우도 생긴다.

  • 위 문제를 해결하기 위해 Schema를 도입했다.

  • mongoose는 사용자가 작성한 Schema를 기준으로 데이터를 DB에 넣기 전에 먼저 검사한다. Schema에 어긋나는 데이터가 있으면 에러를 발생시킨다.

mongodb에서 schema를 이용하는 방법

  • model 폴더를 생성하고 user.model.js 파일을 생성한다.
  • user.model.js 파일에서 Schema를 정의하면 된다.
const mongoose = require("mongoose");

const userSchema = new mongoose.Schema({
  email: {
    type: String,
    unique: true,
  },
  password: {
    type: String,
    minLength: 5,
  },
  googleId: {
    type: String,
    unique: true,
  },
});
// userSchema라는 변수에 mongoose Schema를 생성한다.

const User = mongoose.model("User", userSchema);
// model 메소드를 이용해서 schema를 지정해준다.
// User라는 name으로 userSchema를 넣어준다.
// User라는 변수에 model이 생성된다.

module.exports = User;

  • email
    • type: String - 문자만 받을 수 있다.
    • unique: true - 같은 문자열이 돼서는 안 된다.
    • trim: true - 양 끝에서 공백을 자동으로 제거해준다.
  • password
    • type: String - 문자만 받을 수 있다.
    • minLength: 5 - 최소 5글자 이상이다.
  • googleId
    • type: String - 문자만 받을 수 잇다.
    • unique: true - 같은 문자열이 돼서는 안 된다.
    • sparse: true - googleId가 null 값이어도 error를 방지해준다.

외 다양한 SchemaTypes들은 mongoose 문서를 참고하자

https://mongoosejs.com/docs/schematypes.html

profile
개발 경험치 쌓는 곳

0개의 댓글