当我尝试将数据保存在数据库中时,它会给出禁止的消息
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
}]
});
答案 0 :(得分:1)
我无法重现那个确切的错误,但您应该将架构中condition
的定义更改为非结构化对象数组支持的格式之一,因为我收到了其他错误试图使用[{type: Object}]
。这些工作都是:
condition: [{}]
condition: [Schema.Types.Mixed]
但是,您还需要将$
字段名称中的前导$empty
删除为MongoDB以$
aren't allowed开头的字段名称。< / p>