Mongoose通过ObjectId更新文档

时间:2015-10-04 19:15:20

标签: node.js mongoose

我有一个问题,如果我尝试通过ObjectId更新文档,我会收到MongooseError.CastError。有什么帮助吗?

var comment = new Comment({
    contents: 'contents'
})

console.log(typeof req.body.postId) // 'string'

Post.update({_id: db.Types.ObjectId(req.body.postId)}, { // 'cast error'
    commentsId: {$push: comment._id}
}, function(err, numAffected, res){
    if (err) { return next(err)}
    console.log('success')
})

1 个答案:

答案 0 :(得分:2)

让Mongoose根据定义的架构为您进行投射。

Post.update({_id: req.body.postId}, {commentsId: {$push: comment._id}}, ...