2013-03-18 40 views
1

我有一個沙發數據庫,​​其中包含一個名稱和一個國家/地區字段,並且我創建了一個視圖來返回每個國家/地區的計數。在Couchdb中排序

地圖功能:

function(doc) { 
    emit(doc.country, 1); 
} 

Reduce函數:

function(keys, values, rereduce) { 
    return sum(values); 
} 

的問題是,我需要 「通過令」 由計數作出,在這種情況下,降。 任何想法如何解決它?

回答

1

不幸的是,使用vanilla couchdb時,無法對reduce函數的值進行排序。

一個couchdb託管的供應商Cloudant提供了「鏈式映射減少」來解決這個問題。請參閱http://examples.cloudant.com/sales/_design/sales/index.html

您可以做幾個選項,一個是將數據託管在雲中,或者兩個將本地數據複製到cloudant以查詢您的訂單。

也有這樣的:https://github.com/afters/couch-incarnate,不幸的是我沒有嘗試過,但可能適合你正在嘗試做的事情。

+0

同時也出現了這個最近的提議,以CouchDB的http://mail-archives.apache.org/mod_mbox/couchdb-dev/201301.mbox/%3CCACV2MxcybtnN_CrZsftw0iM9JNiLuqJs5QHaYZbh6efk0JHjyg%40mail.gmail.com%3E但它只是在討論中。 – 2013-03-18 19:48:24

+0

感謝您的時間/答案,我會嘗試;) – 2013-03-18 19:59:10