Ruby和MongoDB:遍历从mongomapper检索到的任意BSON文档

时间:2010-06-21 07:29:45

标签: ruby-on-rails ruby json mongodb mongomapper

在Ruby中,如何使用类似mongomapper的东西遍历从集合中检索到的任意文档?假设文档看起来像这样:

mydocs = 
[{"title":"my title",
 "description":"hello world",
 "comments":[{"user":"me","text":"this"},{"user":"him","text":"that"}]
 },
 {.....}
]

2 个答案:

答案 0 :(得分:1)

def traverse(obj, level=0, name='root')
  s =  "  "*level + name.to_s + ": "
  if obj.is_a?(Array)
    puts s
    obj.each_with_index{ |child,idx| traverse(child,level+1,idx) }
  elsif obj.is_a?(Hash)
    puts s
    obj.each{ |k,v| traverse(v,level+1,k) }
  else
    puts s + obj.inspect
  end
end

traverse mydocs

答案 1 :(得分:1)

从MongoMapper / Mongoid甚至是mongo-ruby-driver获取文档后,就像生成哈希一样。

所以你可以像Ruby World中的所有哈希一样转换它