2017-09-19 21 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); 
    } 
} 

它創建了所有不在英國的文件的索引,鍵入國家代碼。

相關問題