【问题标题】:Looking for symbol to filter all寻找符号过滤所有
【发布时间】:2018-04-08 03:06:40
【问题描述】:

尝试搜索数据库时是否有搜索所有过滤器?我有多个选择框,我想获取其值,然后根据这些值搜索数据。我发现我需要为每个选择框设置一个 if 语句来检查它是默认值(字符串)还是选定值(整数)。

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

在我上面的示例中,一个是默认值(全部),另一个是选定值。当我尝试搜索时,由于“全部”,它不会返回任何内容。我正在寻找一个符号或其他东西来代替“全部”。

【问题讨论】:

  • 您在寻找类似 $or 运算符的东西吗?
  • 如何获取所有选择值,“过滤掉”具有不限制查询的默认(“全部”)值的值,并从剩余值构建查询过滤器?
  • 我相信这里描述了您想要的解决方案:stackoverflow.com/questions/30935591/meteor-and-with-or

标签: mongodb meteor minimongo


【解决方案1】:

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

以下将仅复制不等于 Allobj 的键,然后对这些键运行搜索:

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

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

【讨论】:

    猜你喜欢
    • 2018-09-30
    • 2019-11-18
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 2018-10-16
    相关资源
    最近更新 更多