2017-09-19 23 views
1

CouchDB是否有办法返回不符合特定过滤条件的文档?我使用Python的API,并提供如下的例子:如何在CouchDB中查询否定结果(Python)

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

说我希望所有不匹配的关键value的文件...没有的CouchDB提供了一种方法来做到这一点?

现在我正在获取所有文档,而不是根据需要过滤它们,这非常低效,特别是在数据库的大小增大时。

感谢您的帮助提前。

布赖恩

回答

2

有没有办法从那个是在索引中没有返回数据,只有是在索引数据。该Mango/Query机制并允许你进行查询,如本:

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

其内容为“寻找我的所有地方COUNTRY_CODE不等于‘英国’的文件”,但查询将不被供电索引 - 它需要扫描所有文档 - 所以对于大数据量不会有效。

根据您的使用情况,您可以创建一个自定义的Map/Reduce索引,其中只包含您感兴趣的文档,例如,

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

它创建了所有不在英国的文件的索引,键入国家代码。

相关问题