Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Search meteor中的过滤/搜索功能_Search_Filter_Meteor_Publish - Fatal编程技术网

Search meteor中的过滤/搜索功能

Search meteor中的过滤/搜索功能,search,filter,meteor,publish,Search,Filter,Meteor,Publish,我希望实现一个搜索/过滤功能。它将使用一个下拉栏作为输入(因此我们可以让用户从一组选项中进行选择) 我的系统现在的工作原理是:有一个Meteor.users集合和一个Instruments集合。基本上,每个用户都有一个他演奏的乐器列表(例如,鲍勃弹奏钢琴和小提琴,爱丽丝弹奏钢琴和长笛)。在这种情况下,Instruments集合中有4个对象: 1) 类型:钢琴 所有者:(鲍勃的身份证) 2) 类型:小提琴 所有者:(鲍勃的身份证) 3) 类型:钢琴 所有者:(爱丽丝的身份证) 4) 类型:长笛 所

我希望实现一个搜索/过滤功能。它将使用一个下拉栏作为输入(因此我们可以让用户从一组选项中进行选择)

我的系统现在的工作原理是:有一个Meteor.users集合和一个Instruments集合。基本上,每个用户都有一个他演奏的乐器列表(例如,鲍勃弹奏钢琴和小提琴,爱丽丝弹奏钢琴和长笛)。在这种情况下,Instruments集合中有4个对象:

1) 类型:钢琴 所有者:(鲍勃的身份证)

2) 类型:小提琴 所有者:(鲍勃的身份证)

3) 类型:钢琴 所有者:(爱丽丝的身份证)

4) 类型:长笛 所有者:(爱丽丝的身份证)

所以我要做的是,当我在下拉列表中选择“piano”,然后单击search,我希望它显示Bob和Alice的个人资料。我想这应该使用Meteor的发布功能来完成,但我不知道怎么做(我是这里的初学者)

例如,当我点击搜索时,我如何告诉特定出版物运行?我看到一些例子,人们设置发布规则,只发布他们正在搜索的子集,但我们如何告诉它何时发生?我们是否使用了另一个模板,这样当我们单击“搜索”时,URL路径会改变,从而使用不同的模板


说得清楚一点,我的问题是我该怎么做。谢谢

为方便起见,请尝试将Person集合中的仪器ID绑定为数组

[{
_id: 'BoBId',
Instrumets: [PianoId, ViolinId],
},{
_id: 'AliceId',
Instrumets: [PianoId, ViolinId],
}];
现在你可以找到任何个人资料,谁有这些仪器

Person.find({
  Instruments:{
     $in:[InstrumentsId]
  }
});

第一个问题是数据集有多大?如果您只有少量文档,您可以发布所有文档并更改所显示文档的选择器。这是否可以使用帮助器完成?如果数据集更大怎么办?请参阅Meteor Parties示例:。它显示哪些用户正在参加哪些聚会,这与显示哪些用户正在演奏哪些乐器在语义上不同。