3단계: 스키마 생성
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
Reference
이 문제에 관하여(3단계: 스키마 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hajarnasr/step-3-create-schemas-2m7p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)