在Ruby中,如何使用mongomapper之类的东西遍历从集合中检索到的任意文档?假设文档看起来像这样:
mydocs = [{
"title": "my title",
"description": "hello world",
"comments": [{
"user": "me",
"text": "this"
}, {
"user": "him",
"text": "that"
}]
},
{
.....
}
]
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
从MongoMapper / Mongoid甚至mongo-ruby-driver获取文档后,就像您生成哈希一样。
所以您可以像遍历Ruby World中的所有哈希一样遍历它>