2014-03-19 96 views
0

我想使用CouchDB作为我的数据库。 我有问题,当我想从50000记录中获得最大值。 找到最大值的最佳解决方案是什么?CouchDB中获取最大值

我用这个减少功能:

function (key, values, rereduce) { 
    var largest = Math.max.apply(Math, key); 
    return largest; 
} 

这是我的地图功能:

function(doc) { 
    if(doc.TYPE=="customer"){ 
     emit(doc._id.substring(0,8), doc._id); 
    } 
} 

谢谢

+0

你尝试过什么吗?这是一个非常简单的地图功能,假设您至少阅读过文档或其他内容。 –

+0

你好,我更新了我的问题。现在,问题是如何获得没有任何关键特定的结果视图? – fanjavaid

回答

1

当写减少功能,你不应该忘记占rereduce parameter。但是,您并不需要它,原因有两个:

1)当您查询视图并获取最大项目时,您可以使用descending=true。 (所以你根本不需要减少步骤)

2)你可以使用builtin reduce function_stats并获得最大值w/o编写自己的reduce函数。

仅使用map函数而不使用reduce函数的好处在于,您不仅可以获取最大值,还可以获取包含该值的文档。

+0

好的:D我现在得到最大值,我使用降序= true和limit = 1访问我的视图。 非常感谢:) – fanjavaid