我在使用模板模型引用User
时遇到了问题,我正在尝试保存模板数据,但它正在抛出强制转换为对象ID失败,我是新来的mongoose任何帮助将不胜感激。
templateModel.js
var User = require('../user/user.model.js');
var TemplateSchema = new mongoose.Schema({
name: String,
id: String,
appliesTo: [],
properties: [],
createdBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User'}
});
export default mongoose.model('Template', TemplateSchema);
userModel.js
var UserSchema = new mongoose.Schema({
_id: { type: String, required: true, index: {unique: true}},
firstName: String,
lastName: String,
type: String,
groups:[{type: String, ref: 'Group', required: false}]
},
{
toObject: {
virtuals: true
},
toJSON: {
virtuals: true
}
});
UserSchema.virtual('fullName').get(function() {
return this.firstName+' '+this.lastName;
});
export default mongoose.model('User', UserSchema);
服务器端的客户端对象打印
{
name: 'Java Class',
id: 'javaClass',
appliesTo: ['bpmn:ServiceTask'],
properties: [{
label: 'Java Package Name',
type: 'String',
editable: true,
binding: [Object]
}],
createdBy: 'sh829'
}
MongoDb错误
{
"errors": {
"createdBy": {
"message": "Cast to ObjectID failed for value \"sh829\" at path \"createdBy\"",
"name": "CastError",
"stringValue": "\"sh829\"",
"kind": "ObjectID",
"value": "sh829",
"path": "createdBy",
"reason": {
"message": "Cast to ObjectId failed for value \"sh829\" at path \"createdBy\"",
"name": "CastError",
"stringValue": "\"sh829\"",
"kind": "ObjectId",
"value": "sh829",
"path": "createdBy"
}
}
},
"message": "Template validation failed",
"name": "ValidationError"
}