在mongoose中更新引用模型中的内容

时间:2015-12-01 17:06:32

标签: node.js mongodb express mongoose meanjs

我遇到一个问题,我似乎找不到合适的解决方案。

首先,我使用了meanjs框架,这意味着我在后端使用express,nodejs,mongoose和mongodb!

问题是这样的:每次我想创建帖子时,我都会将用户作为其创建者附加到帖子中,这是通过使用mongoose中的Schema.ObjectId类型来完成的。

当我创建帖子时,我想给用户一个观点。所以流程将是这样的:

  

创建帖子> post.created-> post.postCreator.points + = 1

我想为更多的事情实现这个逻辑,例如,如果其他人喜欢你的帖子,你也会接受一个观点。流程就是这样的:

  

喜欢post-> post.likes + = 1-> post.postCreator.points + = 1

我希望这完全在后端完成,但我不确定如何正确实现这种功能..

在两个示例中,post.postCreator都是Schema.ObjectId类型,它引用了正确的用户文档。

如果有人能指出我应该如何实施,我会非常感激。

提前致谢!

1 个答案:

答案 0 :(得分:2)

如果您拥有Post实例中的用户ID,则需要查询和更新用户。例如:

schema.post('save', function(p) {
    UserSchema.findByIdAndUpdate({'_id': p.userId}, {$inc: {points: 1}},
        function(error, user) {
            // do something else with the user if necessary
        }
    );
});