我正在设计一个MongoDB模式来保存一个相当大/嵌套的文档 . 我打算尽可能多地嵌入到单个文档中,但不确定如何处理代码/查找值 . 例如,如果我们有一个代表“priority”的代码表,可能的值为:
-
低
-
中
-
高
这是我应该使用Mongoose引用的东西,并创建一个简单的文档来保持优先级,例如:
var PrioritySchema = new Schema({
description: String
});
然后将使用以下内容引用它:
var AnotherSchema = new Schema({
name: String,
active: Boolean,
priority: { type: String, ref: 'Priority' }
});
或者这有点矫枉过正?我想避免的是将这些“描述”直接存储在主/整体模型中,然后在将来的某个时间更改需求 . 例如,有人决定而不是“中等”,我们需要“稍微”称它 . 在那种情况下,我认为我会陷入某种数据迁移的困境?
1 回答
你可以这样做 :
还有这个
但如果你想要你进一步描述的内容我会建议你这样做:
如果您需要将这些值作为需要使用引用的跨文档,那么让我们简单一点 . 如果由于父文档而仅存在值,则可以选择嵌入 .
欲了解更多信息,请阅读:http://mongoosejs.com/docs/2.7.x/docs/embedded-documents.html
仅供参考:我过去常常为此付出很多努力 . 如果您遵循嵌入所有嵌套子文档的路径,您将面临很多“为什么我不能这样做:”(最后我选择了引用方式,我觉得它更加舒适 . embing!= referencing .