流星中的过滤/搜索功能

时间:2014-06-03 07:10:57

标签: search filter meteor publish

我正在寻求实现搜索/过滤功能。它将使用下拉栏作为输入(因此我们用户从一组选项中选择)。

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

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

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

3)类型:钢琴    老板:(爱丽丝的身份证)

4)类型:长笛    老板:(爱丽丝的身份证)

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

例如,如果我在搜索时如何判断该特定发布是否会运行?我看到人们将发布规则设置为仅发布他们正在搜索的子集的示例,但我们如何判断它何时发生?我们是否使用另一个模板,以便当我们点击“搜索”时,网址路径会发生变化,从而改变另一个模板?

要说清楚,我的问题是我应该怎么做呢。谢谢!

1 个答案:

答案 0 :(得分:1)

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

[{
_id: 'BoBId',
Instrumets: [PianoId, ViolinId],
},{
_id: 'AliceId',
Instrumets: [PianoId, ViolinId],
}];

现在你可以找到任何有文书的个人资料

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