我需要获取这个数据数组,按字段_1的唯一值和字段中的合并值(field_2,field_3,field_4)进行分组
[
{field_1 => value_1, field_2 => value_2, field_3 => value_3, field_4 = value_4},
{field_1 => value_N, field_2 => value_2, field_3 => value_3, field_4 = value_4}
]
我正在使用Ruby on Rails和mongoid,使用mongoid我可以做这样的事情
uniq_filed_values = db.records.distinct(:field_1)
merged_results = []
uniq_field_values.each do |value|
merged_result = db.records.where("field_1" => value).map{|v| v.attributes}.inject(&:merge)
merged_results << merged_result
end
我想知道是否有任何方法可以在数据库/ Mongodb或mongoid中做同样的事情而不使用这么多ruby。我正在寻找Mongodb map / reduce或aggregation的可能解决方案?或者也许我的样品有更好的解决方案?
请注意 - 此表/集合中有超过1 000 000条记录。
感谢您的帮助!