В настоящее время я планирую структуру базы данных для приложения, которое я создаю, и что-то в этот связанный ответ поднял для меня несколько вопросов.
В структуре, предложенной Шивамоминогда он ссылается на другую коллекцию напрямую, другими словами, внутри одной схемы он определяет тип поля как массива другого типа схемы.Пример:
import { Schema } from "mongoose";
import { QuestionSchema } from "./question-schema";
const mongoose = require('mongoose');
export const QuestionSetSchema: Schema = new Schema({
questionSet: {
type: [QuestionSchema],
validate: {
validator: function(value: any) {
return value.length === 12;
},
message: 'Question set must be 12.'
}
},
}, {
timestamps: true
});
В других случаях он использует только ссылку ObjectID на другую схему / коллекцию:
export const CandidateSchema: Schema = new Schema({
name: String,
email: String, // you can store other candidate related information here.
totalAttempt: {
type: Number,
default: 0,
validate: {
validator: function(value: number) {
return value === 3;
},
message: 'You have already done three attempts.'
}
},
candidateQuestionAnswers: {
type: [Schema.Types.ObjectId],
ref: 'CandidateQuesAnswer'
}
}, {
timestamps: true
});
Каковы варианты использования для каждого из вышеперечисленных?Встраивает ли метод "type: [otherSchema]" экземпляры этой коллекции или предоставляет их свойства только той схеме, из которой они вызваны?