python - 如何在 CouchDB (Python) 中查询否定结果

标签 python database couchdb couchdb-python

CouchDB 是否有办法返回不符合特定过滤条件的文档?我正在使用 Python 的 API 并在下面提供了一个示例:

couch['test_db'].view('doc/entrybyname', key=value, include_docs=True)

假设我想要所有与键 value 不匹配的文档...CouchDB 是否提供了一种方法来做到这一点?

现在我获取所有文档而不是根据需要过滤它们,这是非常低效的,尤其是随着数据库大小的增长。

提前感谢您的帮助。

布莱恩

最佳答案

无法从索引中返回的数据,只能返回索引中的数据。 Mango/Query机制确实允许您执行这样的查询:

{
  "selector": {
    "country_code": { "$ne": "UK"}
  }
}

读作“查找国家代码不等于‘英国’的所有文档”,但查询不会由索引提供支持——它需要扫描所有文档——因此性能不佳对于大数据量。

根据您的用例,您可以创建一个自定义 Map/Reduce 索引,该索引仅包含您感兴趣的文档,例如

function(doc) {
  if (doc.country_code != 'UK') {
    emit(doc.country_code, null);
  }
}

它为所有不在英国的文件创建一个索引,以国家代码为关键字。

关于python - 如何在 CouchDB (Python) 中查询否定结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46310330/

相关文章:

javascript - 如何将 url 参数传递给 couchdb 映射函数

python 搜索以字母开头的字符串

python - 尝试将我的 Tensorflow 模型导出到 T LITE 时出现问题

python - 如何在 NiftyNet 中实现迁移学习?

node.js - 如何使用 connect-mongo session ?

mysql - 为什么coldfusion不在数据库中存储 session

python - 无法安装支持 python 的 GDB

php - 在mysql中选择除一个字段之外的所有字段

amazon-web-services - 我应该使用 CouchDB 还是 SimpleDB?

python - 如何加速用 python 编写的 couchdb View