如何在流星中使用更多参数过滤 minimongo 集合

How to filter minimongo collection with more parameters in meteor

我需要帮助过滤具有 3 个以上参数的反应式迷你 mongo 集合。首先,我用 publish/subscribe 从服务器的 mongo 集合中加载了 minimongo。现在,我想过滤那个集合,让用户只看到集合中与过滤器相同的对象。首先,我有搜索查询过滤器,用于检查输入字符串是否与集合中的某些字段相同:

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

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

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

这是可行的,但这样做的方法很糟糕。现在最大的问题来自最后一个过滤器:我还有一个存储 "job"(集合对象)类型的字段。类型可以是 1、2、3 或 4。那么我怎么能对 minimongo 说呢,例如"Show only jobs that have "“前端”(搜索查询),远程友好,内部有第三个过滤器 2 和 3

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

是这样的吗?谢谢!

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

The $in operator selects the documents where the value of a field equals any value in the specified array.

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

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