2013-03-18 38 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