如何根据订阅id获取游标

How to get cursor by subscription id?

本文关键字:id 获取 游标 何根      更新时间:2023-09-26

如何根据订阅id指定特定游标?

我有两个订阅从相同的集合返回游标,但具有不同的选择器/修饰符

我用例的一个例子我有一个模板用户侧栏,它有用户集合的模板订阅,只返回当前用户

这个用户恰好在HR部门,想要查看QA部门的所有用户,这是另一个模板,由QA部门从用户集合中过滤

我现在的问题是,通过在客户端做一个。find(),它显示所有QA用户+当前用户在HR。

从同一集合返回的两个游标似乎合并在一起并且无法区分,即使我有两个不同的订阅id。

是否有一种方法或解决方法可以指定由特定订阅返回的特定游标中的所有值?

当一个模板不能访问另一个模板返回的游标时,如何使兄弟模板订阅单独工作?

编辑:添加
在我的用例中,我没有停止侧边栏订阅,因为我希望两个模板并排呈现

我对过滤客户端游标有保留意见:
1)在客户端和服务器端重复相同的mongo选择器和修饰符对象似乎违反了don - repeat - yourself (DRY)准则,对我来说不是很优雅的解决方案

2)假设我的集合中有一个秘密字段,我从光标中删除了它,在客户端重复mongo修饰符意味着检查客户端代码将揭示秘密字段

的存在

这实际上是Meteor的一个特性,而不是一个bug。对同一集合的多个订阅是联合的。正常的模式是始终包含查询参数,而不是仅仅假设.find({})将产生一个过滤的数据集。另一种常见模式是在离开路由时停止当前订阅。