寻找符号来过滤所有

时间:2018-04-08 03:06:41

标签: mongodb meteor minimongo

尝试搜索数据库时是否有搜索所有过滤器?我有多个选择框,我想获得值,然后根据值,它搜索数据。我发现我需要为每个选择框都有一个if语句来检查它是默认值(String)还是选定值(Integer)。

items.find({
        "person.age": obj.age, //is 'All'
        "person.gender": obj.gender // is 'male'
      },{
        limit: this.state.limit
      }).fetch()

在上面的例子中,一个是默认值(全部),另一个是所选值。当我尝试搜索时,由于“全部”而无法返回任何内容。我正在寻找一个符号或其他东西来取代所有'。

1 个答案:

答案 0 :(得分:2)

@masteram是对的 - 你想避免使用包含All的密钥 - mongodb中没有*。您可以同时简化逻辑。

以下内容仅会复制obj不等于All的密钥,然后对这些密钥进行搜索:

const person = {};
Object.keys(obj).forEach((k) => {
  if (obj[k] !== 'All') person[k] = obj[k];
});

items.find(person, { limit: this.state.limit }).fetch()