从Ruby

时间:2017-07-10 18:45:59

标签: ruby mongodb hash

我是Ruby新手,需要访问MongoDB数据库并从搜索中返回一些信息。到目前为止,我可以获得所需的记录,但是我很难从返回的嵌套哈希中提取信息。

hash = {"Skills"  => [{"_id" => 200, "description" => "Running"}, {"_id" => 201, "description" => "Jumping"}]}

这是返回的哈希值。我可以访问所需的哈希,但似乎无法提取"运行"和"跳跃"我需要的字符串。

我试过了

puts hash["Skills"]

但我得到:

{"_id"=>200, "description"=>"Running"}
{"_id"=>201, "description"=>"Jumping"}

我需要的是:

"Running"
"Jumping"

我原以为以下会有效:

puts hash["Skills"]["Description"]

2 个答案:

答案 0 :(得分:1)

如果仔细观察,哈希的Skills键是一个数组,而不是另一个哈希。因此,您可以使用Array#map

来实现解决方案
hash['Skills'].map { |s| s['description'] }
# => ["Running", "Jumping"]

答案 1 :(得分:0)

现在想出来。我刚刚在洗碗时意识到它当然是一个阵列。我现在将探讨戴维斯更优雅的答案

hash["skills"].each do |h|
    puts h["description"]
end


Running
Jumping