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

Update content within a referenced model in mongoose

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

首先,我使用的是meanjs框架,也就是说我在后端使用了express、nodejs、mongoose和mongodb!

问题是这样的:每次我想创建一个 post,我都会将一个用户附加到 post 作为它的创建者,这是通过使用 Schema.ObjectId 类型完成的在猫鼬中。

当我创建一个 post 时,我想给用户一个分数。所以流程是这样的:

Create post-> post.created-> post.postCreator.points+=1

我想为更多事情实现这个逻辑,例如,如果其他人喜欢你的post,你也会得到一分。流程将是这样的:

Like post->post.likes+=1->post.postCreator.points+=1

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

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

如果有人能指出正确的方向,我将不胜感激。

提前致谢!

如果您有来自 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
        }
    );
});