0

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

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

2 回答 2

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
于 2010-06-21T07:35:05.877 回答
1

从 MongoMapper/Mongoid 甚至 mongo-ruby-driver 获取文档后,就像生成一个 Hash。

所以你可以像 Ruby World 中的所有哈希一样遍历它

于 2010-06-22T13:22:50.097 回答