Я пытаюсь попасть в MongoDB и Node.js и обнаружил, что самым рекомендуемым модулем для использования является Mongoose. Мне понравилась идея создания схемы, такой как mysql, и она довольно проста в использовании.Почему Mongoose сохраняет ссылки на дочерние элементы в родительской модели?
Одна вещь, которую я не понимал, касается ссылок.
var SessionSchema = new Schema({
created: { type: Date, default: Date.now },
updated: { type: Date, default: Date.now },
client: { type: String, required: true },
events: [{ type: Schema.Types.ObjectId, ref: 'Event', required: true }]
});
var EventSchema = new Schema({
created: { type: Date, default: Date.now },
session: { type: Schema.Types.ObjectId, ref: 'Session', childPath: 'events', required: true },
data: Schema.Types.Mixed
});
В настоящее время возникает вопрос: зачем мне нужно ссылаться на идентификаторы событий изнутри сеанса? Почему бы просто не запросить событияModel.find ({session: session._id})?
Я боюсь, что это создаст огромные сеансовые документы, потому что сессия может иметь даже сотни событий.
Что мне здесь не хватает?
Это ваша схема или вы ссылаетесь на документ или учебник, который это делает? – laggingreflex
Это лишь некоторые из столбцов в схеме. Почему ты спрашиваешь? – sUP