首页 > 解决方案 > 如何从 Ruby 中的 BSON 文档中获取哈希?

问题描述

我使用 Mongo gem 将哈希保存到 MongoDB 中。然后,当我在 Ruby 中查询数据库时,我会得到一个 BSON::Document。

如何将 BSON::Document 转换回原始哈希?

doc = { 姓名:“史蒂夫”,爱好:[“远足”、“网球”、“飞钓”] }

结果 = collection.insert_one(doc)

steve = collection.find( { name: 'Steve' } ).first

返回:

{"_id"=>BSON::ObjectId('5baf68cd65992f3734f396ab'), "name"=>"Steve", "hobbies"=>["远足", "网球", "飞钓"]}

标签: rubymongodbhashbson

解决方案


根据帖子中提到的详细信息,您似乎想将 BSON db 对象转换为 json(Hash) 对象。

BSON 包含 JSON 模块,它提供了下面提到的将对象转换为 json 的方法

to_json

https://www.rubydoc.info/github/mongodb/bson-ruby/BSON/JSON

不确定下面提到的方法,因为我只在 ActiveRecord 对象中使用过,试试它是否有效

result.as_json(only: ["name_of_the_column_you_want"])

推荐阅读