我正在寻求实现搜索/过滤功能。它将使用下拉栏作为输入(因此我们用户从一组选项中选择)。
我的系统现在如何工作:有一个Meteor.users集合和一个Instruments集合。基本上,每个用户都有他演奏的乐器列表(例如,Bob演奏钢琴和小提琴,Alice演奏钢琴和长笛)。在这种情况下,Instruments集合中有4个对象:
1)类型:钢琴 所有者:(鲍勃的身份证)
2)类型:小提琴 所有者:(鲍勃的身份证)
3)类型:钢琴 老板:(爱丽丝的身份证)
4)类型:长笛 老板:(爱丽丝的身份证)
所以我要做的是,当我在下拉列表中选择“钢琴”,然后点击搜索时,我希望它显示Bob和Alice的个人资料。我想这应该是使用Meteor的发布功能完成的,但不知道该怎么做(我在这里是初学者)。
例如,如果我在搜索时如何判断该特定发布是否会运行?我看到人们将发布规则设置为仅发布他们正在搜索的子集的示例,但我们如何判断它何时发生?我们是否使用另一个模板,以便当我们点击“搜索”时,网址路径会发生变化,从而改变另一个模板?
要说清楚,我的问题是我应该怎么做呢。谢谢!
答案 0 :(得分:1)
为方便起见,请尝试将人物的集合中的乐器ID绑定为数组,
[{
_id: 'BoBId',
Instrumets: [PianoId, ViolinId],
},{
_id: 'AliceId',
Instrumets: [PianoId, ViolinId],
}];
现在你可以找到任何有文书的个人资料
Person.find({
Instruments:{
$in:[InstrumentsId]
}
});