如何在流星中使用更多参数过滤 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…
});
我需要帮助过滤具有 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…
});