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/