如何在猫鼬中定义对象数组的子文档?

时间:2018-12-10 21:00:58

标签: mongoose-schema

这是我的例子。

我想创建一个对象,该对象将具有此类对象的数组:

{ name, type, pays : [ amount, pay, bonus, multiplier ] }

这是我的架构的一部分:

symbolsD: [
  {
    name: { type: String, required: true },
    type: [{ type: String, enum: ['line', 'scatter', 'wild', 'wildLineMax', 'bonus', 'lineMultiplier', 'totalWinMultiplier'], required: true, default: 'line' }],
    pays: [{
      amount: { type: Number, required: true },
      pay: { type: Number, required: true },
      bonus: { type: String },
      multiplier: { type: Number }
    }]

  }
]

我收到错误

TypeError: Undefined type `undefined` at array `symbolsD`

我的架构设计有什么问题?

1 个答案:

答案 0 :(得分:0)

第一件事,如果可能,将类型更改为其他内容。由于猫鼬模式具有默认的type属性,用于指定字段的类型。因此可能会产生问题。

错误的原因是-首先,如果它是类型数组,则应提供将应用这些属性的某些字段名称。例如。

symbolsD: [
   {
      type: [{
          **typeName** : {
              type: String,
              enum: ['line', 'scatter', 'wild', 'wildLineMax'],
              required: true,
              default: 'line'
          }
      }],
   }

]

或者如果它不是类型数组,则只需从类型中删除[]。

type: {
     type: String,
     enum: ['line', 'scatter', 'wild'],
     required: true,
     default: 'line'
}

希望这会对您有所帮助。祝你好运。