在 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
}
);
});
我有一个问题,我似乎找不到合适的解决方案。
首先,我使用的是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
}
);
});