Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过订阅id获取游标?_Javascript_Meteor - Fatal编程技术网

Javascript 如何通过订阅id获取游标?

Javascript 如何通过订阅id获取游标?,javascript,meteor,Javascript,Meteor,如何通过订阅id指定特定游标 我有两个订阅返回同一集合中的游标,但使用不同的选择器/修饰符 我的用例的一个例子 我有一个模板用户侧栏,其中模板订阅的用户集合只返回当前用户 该用户恰好在HR中,希望查看来自QA部门的所有用户,这是另一个模板,由QA部门从用户集合中筛选 我现在遇到的问题是,通过在客户端执行.find()命令,它将在HR中显示所有QA用户+当前用户 从同一个集合返回的两个游标似乎合并在一起,并且无法区分,即使我有两个不同的订阅ID 是否有一种方法或解决方法可以指定特定订阅返回的特定游

如何通过订阅id指定特定游标

我有两个订阅返回同一集合中的游标,但使用不同的选择器/修饰符

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

该用户恰好在HR中,希望查看来自QA部门的所有用户,这是另一个模板,由QA部门从用户集合中筛选

我现在遇到的问题是,通过在客户端执行.find()命令,它将在HR中显示所有QA用户+当前用户

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

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

如果一个模板无法访问另一个模板返回的游标,如何使同级模板订阅单独工作

编辑:添加到

在我的用例中,我没有停止边栏订阅,因为我希望两个模板并排出现

我对筛选客户端游标有保留:
1) 在客户端和服务器端重复相同的mongo选择器和修改器对象似乎违反了Don Repeat Yourself(DRY)准则,这对我来说并不是一个完美的解决方案


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

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

在我的用例中,我没有停止侧边栏订阅,因为我希望两个模板并排出现,而我对您的建议持保留态度:1)在客户端和服务器端重复相同的mongo选择器和修改器对象似乎违反了Don Repeat Yourself(DRY)准则,对我来说,这不是一个完美的解决方案2)假设我的集合中有一个秘密字段,我从光标中省略了它,在客户端重复mongo修饰符意味着检查客户端代码将揭示秘密字段的存在。您可以通过放入
find()使代码脱水
在下面的
/lib
中的函数中。停止订阅不是一个选项,因为您同时显示来自同一集合的两个视图。任何人只要进入控制台并键入
Collection.findOne()
,都可以找到秘密字段,但在客户端的查找中忽略密钥并不是在愚弄任何人。