0
我在node.js中使用与mongoose相关的mongodb。我有以下简单的收集模式:mongodb/mongoose:如何建模可扩展的类枚举数据
var calEventSchema = mongoose.Schema({
"_userId" : { type: mongoose.Schema.Types.ObjectId, ref: 'PanelUser' },
"task" : String,
"startTime" : Date,
"endTime" : Date
});
exports.CalEvent = mongoose.model('CalEvent', calEventSchema);
现在我想将“类别”属性,以使数据看起来像这样添加到CalEvent:
{
"_id": "AAA",
"_userId": "BBB",
"task": "Meeting with Bob",
"startTime": "2016-04-12T06:00:00.000Z",
"endTime": "2016-04-12T08:30:00.000Z",
"category" : "meeting"
}
的选项我的类别可能是['会议','休假','公务员','非现场']。当用户创建一个事件时,他应该得到所有的类别选项(例如下拉菜单)。更多:高级用户应该能够扩展类别。
我想到了一些方法来做到这一点,但我不开心或者:
- 创建一个单独的集合,只是存储CalEvents'类别(但如何确保CalEvent模式认为是公正的价值观)
- 做它的关系方式:像1中创建自己的集合,然后用_id将类别引用到CalEvents中的字段_catId,这看起来好像完全一样,我会用关系表感觉有些不妥。
有没有更好的方法来做到这一点?
是的,似乎没有更优雅的选择,如果类别应扩展能够在运行时,我将它作为另一个模型实现。如果类别是静态的,那么就像在示例中显示的那样,它会很优雅 – risuch