【发布时间】:2015-09-30 02:39:02
【问题描述】:
我想使用 Mongoose 和 Express 向数组添加一个值。
router.put( '/projectUser/:id', function( req, res ) {
return ProjectProfile.findById( req.params.id, function( err, project ) {
project.users.push(req.body.user);
return project.save( function( err ) {
if( !err ) {
console.log( 'Project Users updated' );
return res.send( project );
} else {
console.log( err );
return res.send('ERROR');
}
});
});
});
当我这样做时,我收到以下错误
{ [ValidationError: Project validation failed]
message: 'Project validation failed',
name: 'ValidationError',
errors:
{ 'users.-1._id':
{ [CastError: Cast to ObjectID failed for value "EXAMPLE-STRING" at path "_id"]
message: 'Cast to ObjectID failed for value "EXAMPLE-STRING" at path "_id"',
name: 'CastError',
kind: 'ObjectID',
value: 'EXAMPLE-STRING',
path: '_id' } } }
项目架构
var ProjectProfileSchema = new mongoose.Schema({
projectName: String,
productName: String,
users: [{user:'string'}]
});
EXAMPLE-STRING 值是标准字符串。它需要 Mongoose _id 吗?
【问题讨论】:
标签: node.js mongodb express mongoose