我正在使用nodejs,mongoose,我试图构建一个包含对父亲的引用的shema。 Parent应该是对DataType的引用。
var DataTypeSchema = new Schema({
_id: String,
label: { type: String, required: true },
comment: { type: String },
url: { type: String, required: true },
parent: { type: Schema.Types.ObjectId, ref: 'DataType' },
values: []
});
var DataType = mongoose.model('DataType', DataTypeSchema);
module.exports.DataType = DataType;
每个DataType都有自己的ID (不是由mongo生成的),我认为这是一个导致问题的地方。它抛出了一个错误强制转换为objectid失败的值" Number"在路径" parent" ,其中Number是具有ID的对象" Number"已保存在DB中。
由于
答案 0 :(得分:2)
parent
引用的类型必须与其引用的模型中_id
的类型匹配。因此,Schema.Types.ObjectId
代替String
而不是...
parent: { type: String, ref: 'DataType' },
:
{{1}}
答案 1 :(得分:0)
你可以试试这个
parent: [ this ]
它有效