我正在尝试进入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})?
我担心它会创建庞大的会话文档,因为会话甚至可以有数百个事件。
我在这里缺少什么?
答案 0 :(得分:0)
这取决于,通常的常见路径是制作这些引用,以便稍后使用引用数据填充查询,正如我从人口文档中提取的那样:
MongoDB中没有连接,但有时我们仍然需要引用 到其他馆藏的文件。这就是人口涌入的地方。
如果您对人口感兴趣,请将其设为高峰here
你可以手动完成,不会对你的需求和查询产生任何伤害。