是否可以用流星中的变量替换.find()查询?

时间:2017-03-08 10:37:53

标签: javascript meteor syntax

问题:

我不是javascript / meteor语法专家

我想要实现的目标:

用变量替换.find()内的查询以使代码更简单

我的代码:

嗯..这段代码基本上搜索了集合。它将找到已安装的项目或已安装的具有特定名称的项目。

Template.xxx.helpers({
  case_a: () => {
    if(A === true){
      var case1 = case_1.find({ isInstalled: true }).fetch();
      var case2 = case_2.find({ isInstalled: true }).fetch();            
    } else {
      var case1 = case_1.find({ "name": {$regex: (".*"+searchText+".*"), $options: 'i'}, isInstalled: true }).fetch();
      var case2 = case_2.find({ "name": {$regex: (".*"+searchText+".*"), $options: 'i'}, isInstalled: true }).fetch();
    }
    var ret = case1.concat(case2);
    return ret;
  }
});

我想知道的事情:

分配给查询的正确语法

Template.xxx.helpers({
  case_a: () => {
    var query = {};
    if(A === true){
      query = { isInstalled: true };      
    } else {
      query = { "name": {$regex: (".*"+searchText+".*"), $options: 'i'}, isInstalled: true };
    }
    var case1 = case_1.find({ query }).fetch();
    var case2 = case_2.find({ query }).fetch();            
    var ret = case1.concat(case2);
    return ret;
  }
});

任何帮助将不胜感激!!

1 个答案:

答案 0 :(得分:2)

由于query是一个对象,因此可以直接传递给find()方法。

case_1.find(query)

而不是

case_1.find({query})