通過couchdb視圖,我們可以得到按鍵排序的結果。我一直在使用它來獲取與最高數字相關的值。例如,取這個結果(在鍵值表格中):couchDB reduce:rereduce是否保留map的結果順序?
{1:'sam'}
{2:'jim'}
{4:'joan'}
{5:'jill'}
couchDB會根據鍵值對它們進行排序。 (將關鍵看作「得分」可能會有所幫助。)我想找出誰的得分最高或最低。
我已經寫了減少,像這樣的功能:
function(keys, values) {
var len = values.length;
return values[len - 1];
}
我知道有_stat之類的,但這些都不可能在我的應用程序(這是一個精簡下來,假設的例子)。
通常當我運行這個reduce時,根據是否設置降序,我將得到'sam'或'jill'。這就是我要的。但是,在大型數據集中,有時我會從列表中間找到某個人。
我懷疑這是發生在rereduce。我曾假設,當rereduce已經運行時,結果的順序被保留。但是,我不能保證情況如此。我知道在rereduce上,鍵是空的,所以按照正常的排序規則,它們不會被排序。是這樣嗎?
如果是這樣,關於如何讓我的最高得分手的建議?
感謝您的回答。我開始懷疑自己有點不安。 – ddouglascarr 2013-03-13 23:54:18