2015-05-28 77 views
0

當我試圖保存在數據庫中的數據,它給禁消息貓鼬驗證給「CastError:鑄鐵未定義的失敗值」

CastError:鑄鐵未定義的失敗值

[ 
    {"product":{"supplierId":{"undefined":"rfytr"}}}, 
    {"product":{"supplierId":{"$empty":"rfytr"}}} 
] at path "condition" 

我無法弄清楚問題所在。 我的架構是

var mongoose = require('mongoose'), 
    validator = require('mongoose-validators'), 
    Schema = mongoose.Schema; 
var RuleSchema = new Schema({ 
    description: { 
     type: String, 
     validate: [validator.isLength(1, 50)] 
    }, 

    status: { 
     type: String, 
     enum: ['live', 'active', 'paused', 'inactive', 'unfinished'] 
    }, 

    /** 
     condition. It can only contain object. 
    */ 
    condition: [{ 
     type: Object 
    }] 
}); 

回答

1

我無法重現,準確的錯誤,但你應該改變你的架構condition的定義是一種支持的格式的非結構化對象的數組,因爲我是越來越其他錯誤嘗試使用[{type: Object}]。這兩種工作:

condition: [{}] 
condition: [Schema.Types.Mixed] 

但你還需要在$empty字段名稱去除導致$作爲一個$aren't allowed通過MongoDB的開始字段名。