Javascript Mongoose.js使用异常但似乎可以接受的字符串值保存文档时出错

Javascript Mongoose.js使用异常但似乎可以接受的字符串值保存文档时出错,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,从Node.js将文档保存到mongoose.js时出错。这段代码已经很好地工作了一段时间,但是它现在导致了Javascript对象的问题,这些对象的键值在其他情况下看起来很好 正在保存的是一个文档,其中一个成员是关联数组,为了简单起见,该数组表示为Schema.Types.Mixed: var formatSchema = new mongoose.Schema({ name: {type: String, required: true}, values: {type: mongoos

从Node.js将文档保存到mongoose.js时出错。这段代码已经很好地工作了一段时间,但是它现在导致了Javascript对象的问题,这些对象的键值在其他情况下看起来很好

正在保存的是一个文档,其中一个成员是关联数组,为了简单起见,该数组表示为
Schema.Types.Mixed

var formatSchema = new mongoose.Schema({
  name: {type: String, required: true},
  values: {type: mongoose.Schema.Types.Mixed, required: false}
});
现在,当一个对象具有类似于
“0038-”
的键时,它将失败。具体来说,是破折号
-
造成了问题。如果我去掉这些值(为了测试,而不是为了用户满意度),它就可以正常加载。我把它隔离了这么远,现在还不知道该怎么办

[
  {
    "name": "INJURYF",
    "values": {
        "0": "No",
        "1": "Yes"
    }
  },
  {
    "name": "RFVF",
    "values": {
        "10050": "Chills",
        "10100": "Fever",
        "10200": "General weakness",
        "10250": "General ill feeling",
        "00323": "Salmonella arthritis",
        "00324": "Salmonella osteomyelitis",
        "0038-": "Other specified salmonella infections",   // PROBLEM STARTS HERE
        "0039-": "Salmonella infection, unspecified",
        "0040-": "Shigella dysenteriae",
        ...
      }
    }, ...
  ]
下面是具体的错误消息

Express
500 TypeError: Cannot call method 'path' of undefined
at getPositionalPath (/myproject/node_modules/mongoose/lib/schema.js:380:22)
at Schema.path (/myproject/node_modules/mongoose/lib/schema.js:199:9)
at Query._getSchema (/myproject/node_modules/mongoose/lib/query.js:1789:27)
at Query._walkUpdatePath (/myproject/node_modules/mongoose/lib/query.js:1721:16)
at Query._walkUpdatePath (/myproject/node_modules/mongoose/lib/query.js:1716:25)
at Query._castUpdate (/myproject/node_modules/mongoose/lib/query.js:1655:23)
at castDoc (/myproject/node_modules/mongoose/lib/query.js:2160:18)
at Query._findAndModify (/myproject/node_modules/mongoose/lib/query.js:2032:17)
at Query.findOneAndUpdate (/myproject/node_modules/mongoose/lib/query.js:1941:15)
at Function.Model.findOneAndUpdate (/myproject/node_modules/mongoose/lib/model.js:1127:16)
我们开始:

这是一个老猫鼬版本的错误-请更新到最新版本

我们开始:


这是一个老猫鼬版本的错误-请更新到最新版本

请发布一些附加信息:a)显示您如何调用findOneAndUpdate的代码,b)您正在使用的mongoose的确切版本。谢谢实际上,把它作为答案贴出来。几周前我刚刚安装了mongoose.js,所以我没有想到这可能是个问题,但升级到3.3.1版后神奇地解决了这个问题。非常感谢你!请发布一些附加信息:a)显示您如何调用findOneAndUpdate的代码,b)您正在使用的mongoose的确切版本。谢谢实际上,把它作为答案贴出来。几周前我刚刚安装了mongoose.js,所以我没有想到这可能是个问题,但升级到3.3.1版后神奇地解决了这个问题。非常感谢你!