ruby on rails - Sum mongoid specified field -


def self.group_by(field, format = 'day')   key_op = [['year', '$year'], ['month', '$month'], ['day', '$dayofmonth']]   key_op = key_op.take(1 + key_op.find_index { |key, op| format == key })   project_date_fields = hash[*key_op.collect { |key, op| [key, {op => "$#{field}"}] }.flatten]   group_id_fields = hash[*key_op.collect { |key, op| [key, "$#{key}"] }.flatten]   pipeline = [     {"$project" => {"name" => 1, field => 1}.merge(project_date_fields)},     {"$group" => {"_id" => group_id_fields, "count" => {"$sum" => "$qtyused"}}},     {"$sort" => {"count" => -1}}   ]   collection.aggregate(pipeline)<br> end 

when execute script, count result 0.
how can sum attributes qtyused?

you not projecting "qtyused" field

  pipeline = [     {"$project" => {"name" => 1, field => 1, "qtyused' => 1}.merge(project_date_fields)},     {"$group" => {"_id" => group_id_fields, "count" => {"$sum" => "$qtyused"}}},     {"$sort" => {"count" => -1}}   ] 

Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -