3단계: 스키마 생성

Mongoose의 스키마는 모델을 형성하고 모델이 가져야 하는 속성 유형을 정의하는 데 사용하는 틀과 같습니다.

String, Boolean 및 Number 속성을 사용하여 스키마를 정의하는 경우 모델 데이터는 String, Boolean 및 Number 유형이어야 합니다.

첫 번째 단계에서 정의한 User 및 Post 모델에 대해 두 개의 Schema를 만들어 보겠습니다.

// models/User.js

const mongoose = require("mongoose")
// use mongoose Schema
const Schema = mongoose.Schema;

// Create a new Schema
const UserSchema = new Schema({
    // 1 
    username: {
         type: String, 
         default:"Anonymous",
        },
    // 2    
    email: {
        type: String,
        required: true,
        unique: true
    }
});



여기서 UserSchema는 두 가지 속성만 있는 간단한 스키마입니다.
1- 사용자 이름: string 이어야 하며, 없으면 "익명"이 대신 데이터베이스에 저장됩니다.
2- 이메일: 또한 string 이어야 하지만 사용자 이름과 달리 필수입니다. 즉, 이메일을 먼저 추가하지 않고는 사용자 문서를 데이터베이스에 저장할 수 없습니다. 또한 해당 이메일은 고유해야 합니다.

// models/Post.js

const mongoose = require("mongoose")

// use mongoose Schema
const Schema = mongoose.Schema;

// Create a new Schema for Post model
const PostSchema = new Schema({
    // 1 
    title: String,
    // 2    
    content: {
        type: String,
        required: true,
        trim: true,
        minlength: 5
    },
    // 3
    created_at: {
        type: Date,
        default: Date.now
    },
    // 4
    author: {
        type: Schema.Types.ObjectId,
        ref: "User"
    }
});


여기에 PostSchema에 대한 네 가지 속성이 있습니다.
1- 제목: string 이어야 합니다. 필수도 아니고 기본값도 없기 때문에 없으면 데이터베이스에 전혀 저장되지 않습니다.
2- 내용: string이어야 하며 필수입니다. 데이터베이스에 저장하기 전에 길이가 5자 이상이고 잘려야 합니다.
3-created_at: Date 이어야 하며 기본값은 Date.now 입니다.
4- 저자: 여기에서 다른 유형과 약간 다릅니다.

위의 작성자는 Schema.Types.ObjectId 유형이며 이는 데이터베이스의 사용자 문서에 대한 링크/참조임을 의미합니다. 따라서 User 및 Post 모델 모두에서 작성자에 대한 모든 정보를 작성하는 대신 Post 모델에 작성자의 _id를 실제 사용자 문서에 대한 참조로 저장합니다.

앱에 대해 원하는 만큼 스키마를 생성할 수 있습니다. 여기에 CommentSchema 또는 LikeSchema를 추가할 수 있습니다. 그리고 모든 새로운 스키마와 함께 { type: Schema.Types.ObjectId, ref: "<Model>" } 속성을 추가하여 다른 모델의 개체에 연결할 수 있습니다.

이제 스키마 작성을 마쳤으므로 다음 단계로 이동하여 이러한 스키마의 모델을 만들 차례입니다.

4단계: 이러한 스키마의 모델 만들기

Mongoose에서 스키마의 모델을 만드는 데 한 줄만 있으면 됩니다. 모델 이름을 선택하고 스키마와 함께 해당 이름을 mongoose.model 에 전달하기만 하면 됩니다.

// models/User.js 
...
// make User model by using UserSchema
module.exports = User = mongoose.model("User", UserSchema);



// models/Post.js file
...
// make Post model by using PostSchema
module.exports = Post = mongoose.model("Post", PostSchema);


이제 데이터를 데이터베이스에 저장하는 데 사용할 두 가지 모델이 있습니다.

참조
freeCodeCamp
the mongoosejs docs .
MDN
code.tutsplus

좋은 웹페이지 즐겨찾기