Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – mongoid group_by返回一个hashmap而不是一个哈希数组大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从mongoid group_by而不是数组中检索一个hashmap
Product.group_by {|p| p.user_id }

返回映射数组

result = Product.group_by {|p| p.user_id } 

=> [ {"12354asdf" => [product1,product2,product3]},{"safakjgh314" => [product4,product5,product6]} ]

我目前正在运行以下查询的结果,以实现映射的单个哈希

result.reduce Hash.new,:merge

有没有更有效的方法来做到这一点?

编辑***
在分组之后,我宁愿使用一个有意义的可枚举操作集合.

result.each do |k v| k v end

而不是

result.each do |h| h.keys.first,h.values.first end

它目前返回的例子.

[ 
  {user_object => [item1,item2,item3] },{user2_object => [item1,item3] }
]

解决方法

关于迭代哈希数组的更紧凑的方法,您可以先获取每个元素:
result.map(&:first).each do |k,v|
  puts k
  puts v.count
end
# 12354asdf
# 3
# safakjgh314
# 3

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – mongoid group_by返回一个hashmap而不是一个哈希数组全部内容,希望文章能够帮你解决ruby-on-rails – mongoid group_by返回一个hashmap而不是一个哈希数组所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。