具有随机密钥但具有字符串类型的对象的Mongoose模式

时间:2018-03-18 23:09:40

标签: node.js mongodb mongoose mongoose-schema

有没有办法让对象的模式具有String类型的所有元素? 例如:

Station.Identification

1 个答案:

答案 0 :(得分:0)

我不知道有一项功能允许您将schema的任何属性定义为字符串。

您可以使用Mixed类型执行某些操作,该类型允许任何内容validation

const mixed = new Schema({

  strings: {
    type: Mixed,
    validate: {
      validator: function(obj) {
        if ( typeof obj !== 'object' ) throw new Error('Strings requires an object')
        for ( let key of obj ){
          if ( typeof obj[key] !== 'string' ) {
            throw new Error(`String "${key}" is not a string: ${typeof obj[key]}`)
          }
        }
        return true
    },
    message: "{VALUE} is not an object with all string properties. 
  }
})

如果您可以使用对象中的附加级别并使用mongoose ^ 5来抛出自定义错误。