我有一个出版物,它返回一个看起来像这样的游标:
// Publication RETURNS THIS QUERY
Notepads.find({_id: notepadId, $or: [{userId: this.userId}, {'collaborators.userId': this.userId}], archived: false})
如您所见,查询对用户来说是唯一的,因为它包括this.userId
我this.userId
在出版物中使用作为一种安全形式。如果您与该特定记事本相关联,您只会取回数据。
在我的应用程序中,多人可以在一个记事本上进行协作。那么为了让观察者更可重用,这种调整会帮助我的应用程序吗?
// Optimized publication
notepad = Notepads.findOne({_id: notepadId, $or: [{userId: @userId}, {'collaborators.userId': @userId}], archived: false})
if notepad?
// Optimized publication RETURNS THIS QUERY
return Notepads.find({_id: notepad._id, archived: false})
else
return
我认为这就是观察者重用的意思。该发布为订阅它的任何用户返回完全相同的查询。那么这是否正确,这种优化值得改变吗?