当我尝试保存我的“评级”架构时,它会给出错误

error:  ValidationError: Rating validation failed

没有给出问题的字段名称,也没有问题的类型(如果它是关于转换,null或缺少值,或其他...)

在我的架构中,我没有任何字段“必需”,也没有“index:true”......我只是以这种方式指定类型:

{
  ex_string_field  :   {type:String},
  ex_number_field  :   {type:Number}, 
  ex_array_field   :   [    
                        {
                          sub_field_string : {type:String}
                         }
                       ],
  ex_object_field  :   {
                        sub_field_string : {type:String}
                       }
  }

如何找到上升错误的字段?我有很多领域 . 实际上,没有任何必填字段,验证对象应该很容易 . 我猜想如果一个领域不合规,它就会被忽略....

这是我的系统:

"mongoose": "^4.11.12",
"node"    : "v8.1.3",
"npm"     : "5.3.0"

这是完整的错误堆栈跟踪:

2017-12-5 - error:  ValidationError: Rating validation failed
    at ValidationError (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/error/validation.js:28:11)
    at model.Document.invalidate (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/document.js:1658:32)
    at model.Document.$set (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/document.js:760:10)
    at model._handleIndex (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/document.js:590:14)
    at model.Document.$set (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/document.js:550:24)
    at model._handleIndex (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/document.js:574:12)
    at model.Document.$set (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/document.js:550:24)
    at model.Document (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/document.js:77:12)
    at model.Model (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/model.js:55:12)
    at new model (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/mongoose/lib/model.js:3885:13)
    at /Volumes/HD Daniele/Sites/cashinvoice/server/server/routes/admin/admin-utils.js:370:13
    at _fulfilled (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/q/q.js:854:54)
    at self.promiseDispatch.done (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/q/q.js:883:30)
    at Promise.promise.promiseDispatch (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/q/q.js:816:13)
    at /Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/q/q.js:624:44
    at runSingle (/Volumes/HD Daniele/Sites/cashinvoice/server/node_modules/q/q.js:137:13)

==================更新====================

经过一些测试,我最终得知错误是复杂字段'main_info' . 具体而言,交换了2种类型(数字为String,String为数字) . 它们被定义如下:

this.schema = new Schema({
  main_info :
   {
        rea :                       {type:String},
        name :                      {type:Number},
    }
 });

这是一个提升验证错误的传递数据的示例:

main_info :
{
  "rea": 649087,
  "name": "NUTIS S.R.L."
}

无论如何,我认为这是疯狂的手动解析整个数据,以找出问题所在 . Mongoose真的没有提供有关验证失败的任何进一步信息吗?