设置混合架构类型错误

Setting Mixed Schema Type Error

本文关键字:类型 错误 混合 设置      更新时间:2023-09-26

我有一个应用程序,它使用了mongoose.js的旧版本,我正在将其升级到2.9.x(目的是在更新成功后升级到3.x)。它似乎(大部分)工作正常,直到我尝试设置任何模式类型为Mixed的东西。当我这样做时,它会错误地说出TypeError: Cannot read property 'name' of undefined

这是我的模式:

mongoose = require 'mongoose'
Schema   = mongoose.Schema
Mixed   = Schema.Types.Mixed
LogItemSchema = new Schema({
    action: String
  , user: String
  , comment: String
  , time: Date
  , modal: Mixed
})
module.exports = LogItem = mongoose.model('LogItem', LogItemSchema)

我可以创建一个新的LogItem fine,直到我尝试设置modal属性(通常使用半复杂的对象,即{type: 'string', companies: ['company1', 'company2']}),它才会出错。

如果我不设置模态,就没有错误。知道为什么会这样吗?

故事的寓意:不要使用Mixed类型。

但说真的,我从来没有弄清楚这个特殊的问题是什么。我最终只是更新到了Mongoose的最新版本,并在出现错误时处理了这些错误(主要是API的更改)。

在此之前,日志已更改为不包括任何Mixed数据。