如何从mongoose模式中获取枚举值?

7
这是我的方案:
  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'”错误。我做错了什么?
2个回答

6

由于facts是一个带有内嵌模式的数组,因此您需要首先访问该模式,然后可以使用与type相同的方式获取枚举值。

DocumentModel.schema.path('facts').schema.path('type').enumValues

3

由于facts是一个对象数组,您需要按照以下方式获取enumValues:

DocumentModel.schema.path('facts.0.type').enumValues

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接