Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > NoSQL > Можно ли использовать map reduce вместо group by?


Автор: webmin 16.3.2013, 01:48
Есть коллекция, из которой нужно (постранично) выбрать значения сгруппировав по полю name.
В коллекции 36 тысяч записей, планируется как минимум в 10 раз больше.
Если делать map reduce через временную таблицу, то формирование таблицы происходит недопустимо долго. 

Код

map_func = """
function() {
    emit(this.name, {shop: this.shop, name: this.name, img:this.img, id:this._id});
}
"""
reduce_func = """
function(k, values) {
    var reduced = {"data":[]};
    for (var i in values) {
        var inter = values[i];
        for (var j in inter.data) {
            reduced.data.push(inter.data[j]);
        }
    }
    return reduced;
}
"""


Как решается такая проблема? Возможно как то ограничить выборку? Или поставить этот запрос на крон и выберать данные из временной таблицы?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)