2012-11-12 147 views
2

最近一直与nodemongoose一起工作,我很喜欢它,直到我不得不更新模型。猫鼬文档更新错误

下面是我在做什么:

module.exports.update = (post, cb) -> 
    Post.update _id: post._id, post, (err, data) -> 
    cb(err, data) 

因此,我认为这将是一个容易为保存一个新职位,但它的抱怨 错误:

err: 'Mod on _id not allowed'

我试着删除post._id然后将其传递给我的更新方法,但它没有工作,我 找不到任何好的例子,除了看起来 有点奇怪,首先你发现Post_id,然后手动更新每个键 并保存回发...

有什么建议吗?

+0

是'post'普通对象还是'Post'模型实例? – JohnnyHK

回答

2

您在正确的轨道上删除post._id,然后传递给update。假设post是一个普通的JS对象,这应该工作:

module.exports.update = (post, cb) -> 
    id = post._id 
    delete post._id 
    Post.update _id: id, post, (err, data) -> 
    cb(err, data) 
+0

嘿,我终于明白了!非常感谢你 :) – daniel