2014-03-19 3 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 и получить максимальное значение без написания собственной функции сокращения.

Преимущество использования функции карты без функции уменьшения заключается в том, что вы можете получить не только самое большое значение, но и документ, который содержит это значение.

+0

Хорошо: D Теперь я получаю максимальное значение, я использую descending = true и limit = 1 при доступе к моему представлению. Большое спасибо :) – fanjavaid

Смежные вопросы