这是我的计划:
var documentSchema = mongoose.Schema({
'facts': [{
'type': { type: String, required: true, uppercase: true, enum: ['TEXT'], default: 'TEXT'},
'label': { type: String },
'value': { type: String }
}],
'type': { type: String, required: true, uppercase: true, enum: ['TEXT', 'MARKDOWN', 'JSON'], default: 'TEXT'},
'lastModified': { type: Date, required: true, default: Date.now },
'created': { type: Date, required: true, default: Date.now }
}, {
versionKey: 'version'
});
var DocumentModel = mongoose.model('Document', documentSchema);
我可以使用以下内容获取枚举:
DocumentModel.schema.path('type').enumValues,
但不是:
DocumentModel.schema.path('facts.type').enumValues,
我得 TypeError:无法读取未定义的属性'enumValues'。我做错了什么?
答案 0 :(得分:5)
由于facts
是一个包含嵌入式架构的数组,因此您需要先访问该架构,然后以与type
相同的方式获取枚举值。
DocumentModel.schema.path('facts').schema.path('type').enumValues
答案 1 :(得分:1)
由于事实是一个对象数组,你需要获得如下的enumValues:
DocumentModel.schema.path('facts.0.type').enumValues