Model를 만드는 과정.

🤨 기본

  1. models/user.js 스키마를 정의한다.

    const mongoose = require('mongoose')
    
    const userSchema = mongoose.Schema({
        id: {
            type: String,
            require: true,
            unique: true,
        },
        pw: {
            type: String,
            require: true
        },
        name: {
            type: String,
            require: true
        }
    })
    
    module.exports = mongoose.model('User', userSchema)
    

    ⭐ 몽구스는 model의 첫 번째 인자로 컬렉션 이름을 만든다.

    'User''users' 컬랙션이 강제 개명된다.

    강제 개명이 싫다면 mongoose.model('User', userSchema, 'myfreename')

  2. routes/users.js 모델을 가지고 CRUD를 수행한다.

    
    

💀 심화

mongoose.Schema 는 다양한 기능을 제공한다.

  1. required: true

  2. unique: true primary key

  3. lowercase: true

  4. trim: true 필드의 공백 제거

  5. index: true 보조 index, 해당 필드를 검색할 때

  6. 필드 제어

    1. default: 0, max: 50
    2. [String] or [{ type: String }] String 배열
  7. 복합 인덱스

    userSchema.index({ email: 1, nickname: 1 });

2. virtual

다큐먼트에는 없지만 객체에는 있는 가상의 필드를 만든다

userSchema.virtual('detail').get(() => {
  return `저는 ${this.name}이고 비번은 ${this.pw}입니다 ㅋㅋ`;
});

조회 할 때 detail 필드가 생긴다