在我的网络应用程序中,我有关注者和通知。问题是如何获取用户列表并报告某些文档的更改,例如更改的价格,或者用户创建了更多属性等。所以我可以使用更改流来观察集合内的更改。
Property.watch().
on('change', async data => {
let prop = await Property.findById(data.documentKey._id);
let user = await Follow.findOne({userId: prop.user._id});
// After that find all followers then
user.followers.forEach(foll => {
await Notification.create({
...
})
})
});
这段代码对我来说看起来很疯狂,我的意思是即使有一些验证等。这又是矫枉过正。
也许更好的方法是控制器内部的一些逻辑,但是我如何在他成功创建或更新文档后首先向用户返回响应,然后运行一些函数,我可以在关注者列表中找到所有用户并为他们创建通知?
你们怎么看?通知系统的示例和解决方案不多,是否有任何资源可以提供帮助