我遇到一个问题,我似乎找不到合适的解决方案。
首先,我使用了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类型,它引用了正确的用户文档。
如果有人能指出我应该如何实施,我会非常感激。
提前致谢!
答案 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
}
);
});