【发布时间】:2015-05-21 14:13:45
【问题描述】:
假设我有这个代码:
map = %Q{
function() {
emit(this.name, { likes: this.likes });
}
}
reduce = %Q{
function(key, values) {
var result = { likes: 0 };
values.forEach(function(value) {
if(value.likes < 0){
#{Rails.logger.error "likes are negativ" }
}
result.likes += value.likes;
});
return result;
}
}
Band.where(:likes.gt => 100).map_reduce(map, reduce).out(inline: true)
如您所见,如果value.likes 为负值,我想记录一个错误:
#{Rails.logger.error "likes are negativ" }
但是每次我运行聚合时都会执行此代码,而不是在 likes 为负数时执行。
如何在聚合语句中引发错误?
【问题讨论】:
-
每次都会执行是什么意思? if 块内的代码?
标签: ruby-on-rails ruby ruby-on-rails-4 mongoid aggregate