【问题标题】:how to exclude certain documents from Cloudant (or Mango) query?如何从 Cloudant(或 Mango)查询中排除某些文档?
【发布时间】:2017-09-27 14:48:47
【问题描述】:

我将 IMDB 电影演示数据库导入到我的 CouchDB 实例中,并且正在通过使用一些 Cloudant 教程和参考资料来了解 Mango。

我编写了这个查询来识别演员的名字类似于“bruce”的文档。现在我想修改它以从结果集中排除某些文档。例如 Movie_name 'Monster'。

这可能吗?如果可以,谁能帮我弄清楚如何做到这一点?

{"selector":
  {"_id":
    {"$gt": null},
    "Person_name": {"$regex": "(?i)bruce"}
  }
}

【问题讨论】:

    标签: couchdb cloudant couchdb-mango


    【解决方案1】:

    $ne 运算符可用于匹配“不等于”给定值的文档。

    {
      "selector":{
         "_id": {"$gt": null},
         "Person_name": {"$regex": "(?i)bruce"},
         "Movie_name": { "$ne": "Monster" }
      }
    }
    

    请注意:在查询中使用 $regex 并不是获得出色性能的秘诀,因为它不可避免地会迫使 CouchDB 手动扫描数据库中的所有文档,而不是利用预先建索引。同样,$ne 运算符具有相似的性能特征。

    Cloudant 数据库(托管的 CouchDB 服务)的推荐做法是在您查询的字段上创建一个type=text 索引。该索引将允许您在查询中使用$text 运算符代替正则表达式,这应该会更有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-21
      • 2018-11-15
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多