couchDB reduce:rereduce是否保留了映射结果的顺序?

couchDB reduce:rereduce是否保留了映射结果的顺序?,couchdb,Couchdb,通过couchdb视图,我们可以得到按键排序的结果。我一直在使用它来获取与最高数字关联的值。例如,以该结果(键:值形式)为例: couchDB将根据密钥对其进行排序。(将关键点视为“分数”可能会有所帮助。)我想知道谁的分数最高或最低 我编写了一个reduce函数,如下所示: function(keys, values) { var len = values.length; return values[len - 1]; } 我知道有_stat之类的东西,但在我的应用程序中不可能有这些东西(

通过couchdb视图,我们可以得到按键排序的结果。我一直在使用它来获取与最高数字关联的值。例如,以该结果(键:值形式)为例:

couchDB将根据密钥对其进行排序。(将关键点视为“分数”可能会有所帮助。)我想知道谁的分数最高或最低

我编写了一个reduce函数,如下所示:

function(keys, values) {

var len = values.length;
return values[len - 1];

}
我知道有_stat之类的东西,但在我的应用程序中不可能有这些东西(这是一个精简的、假设的示例)

通常,当我运行这个reduce时,根据是否设置了降序,我会得到'sam'或'jill'。这就是我想要的。然而,在大型数据集中,有时我会从列表的中间找到一个人

我怀疑这是在瑞瑞瑞斯发生的。我假设当运行rereduce时,结果的顺序会保持不变。然而,我无法保证情况会如此。我知道在REREREDUCE上,键是null的,所以按照正常的排序规则,它们不会被排序。是这样吗


如果是这样的话,有没有关于如何获得最高分数的建议?

是的,我不认为排序顺序是有保证的,可能是因为在集群环境中无法保证排序顺序。我怀疑您在这里使用map/reduce的方式有点不确定,但是如果您真的想在这里找到一个好的答案,您应该在这里发布视图代码。

谢谢您的回答。我自己也开始怀疑这有点不确定。
function(keys, values) {

var len = values.length;
return values[len - 1];

}