ruby - 从 Ruby 中的 MongoDB 嵌套哈希中提取正确的字符串

标签 ruby mongodb hash

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

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

这是返回的散列。我可以访问所需的哈希值,但似乎无法仅提取我需要的“Running”和“Jumping”字符串。

我试过了

puts hash["Skills"]

但我只是得到:

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

我需要返回的是:

"Running"
"Jumping"

我原以为以下方法会奏效:

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

最佳答案

如果仔细观察,散列的 Skills 键是一个数组,而不是另一个散列。因此,您可以使用 Array#map 来实现您的解决方案。 :

hash['Skills'].map { |s| s['description'] }
# => ["Running", "Jumping"]

关于ruby - 从 Ruby 中的 MongoDB 嵌套哈希中提取正确的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45019558/

相关文章:

javascript - 不要从 js 对象发送数据

sql-server - MongoDB 可用连接

java - 在Java中测试MongoDB : concurrency problems

c# - 在 C# 中有两个散列函数的字典?

python - 如何将 Ruby 模块移植到 Python

ruby - Ruby 字符串的按位运算

c# - 为什么 SHA256 的所有变体都显示为 SHA256Managed?

javascript - 如何在 ASP.NET 中对图像源 url 进行哈希处理

mysql - Rails 4 - 如何跟踪用户的事件并且不使应用程序 + MySQL 数据库重载?

ruby - 用于 Rails 应用程序的 sqlite3-ruby 编译和 sqlite3 打包