【发布时间】:2014-10-28 23:47:31
【问题描述】:
我正在尝试使用 MongoDB 和 Node.js,发现最推荐使用的模块是 Mongoose。我喜欢创建像 mysql 这样的架构的想法,而且它非常易于使用。
我不明白的一点是关于引用。
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
});
现在有一个问题 - 为什么我需要从会话内部引用事件 ID?为什么不只查询 eventsModel.find({session: session._id})?
恐怕它会创建巨大的会话文档,因为一个会话甚至可以有数百个事件。
我在这里错过了什么?
【问题讨论】:
-
这是您的架构,还是您引用了执行此操作的文档或教程?
-
这只是架构中的一些列。为什么要问?