如何使用meteor

时间:2017-04-30 10:16:50

标签: mongodb meteor meteor-blaze minimongo

我需要帮助过滤使用3+参数的反应性最小化收集。首先,我已经通过发布/订阅从服务器的mongo集合中加载了minimongo。现在,我希望过滤该集合,让用户只能看到集合中与过滤器相同的对象。首先,我有搜索查询过滤器,检查输入字符串是否与集合中的某些字段相同:

Job.find({  $or: [ { Name: regex }, { Description: regex }, ]});

这部分工作做得很好。现在第二个过滤器:我在对象中有字段,如果该特定作业是远程友好的则为true,如果不是,则为false,我想如果用户启用该过滤器,他只看到远程友好的作业位置,如果他禁用它,他可以看到所有可用的工作(当然+搜索查询):

if (remoteQuery === true ) {
        return Job.find({  $or: [ { Name: regex }, { Description: regex }, ]  , Remote: true});
}

这是有效的,但这是不好的方法。现在最大的问题来自最后一个过滤器:我还有一个存储" job" (集合对象)类型。类型可以是1,2,3或4.那么我怎么能说最小化,例如"仅显示有"前端"内部(搜索查询),它是远程友好的,并且内部有第三个过滤器2和3;

Job.find({  $or: [ { Name: "Front-end"}, { Description: "Front-end"}, ]  , Remote: true, positionType: [2,3],}); 

这样的东西?谢谢!

1 个答案:

答案 0 :(得分:2)

听起来您正在寻找MongoDB查询$in运算符:

  

$in运算符选择字段值等于指定数组中任何值的文档。

因此,您的第三个查询可能如下所示:

Job.find({
    positionType: {
        $in: [2, 3] // Matches documents where `positionType` is either 2 or 3
    },
    // Other conditions…
});