Мое понимание карты / уменьшения кажется недостаточным. Интересно, смогу ли я выбрать подмножество документов из коллекции, запустить карту и сократить функции только для этого подмножества.
Возможно ли это вообще?
В противном случае это означало, что вся фильтрация должна быть выполнена в функции карты перед генерацией. Я уже написал карту для моего варианта использования:
map = <<-EOF
function(){
Array.prototype.contains = function(obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
return true;
}
}
return false;
};
project_ids = ['#{@project_ids.map{|pid| pid.to_s}.join('\',\'')}'];
if(project_ids.contains(this.project_id.toString())) {
if(this.time.getFullYear() == '#{@year}' && this.time.getMonth() == '#{@month.to_i - 1}') {
emit(
this.time.getDate(),
{
foos: this.stats.foos
}
);
}
}
};
EOF
Это часть проекта Rails, и метод, реализованный с использованием map / проводить, на самом деле в 3 раза медленнее, чем чистый метод ruby.
Поэтому мне интересно, есть ли возможность сначала отфильтровать мой набор записей, применяя некоторые условия, а затем запустить подмножество записей с помощью map / lower для получения моих данных.
Может ли кто-нибудь просветить меня?
Спасибо заранее
Felix