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

问题描述 投票:0回答:2

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

mydocs = [{
    "title": "my title",
    "description": "hello world",
    "comments": [{
      "user": "me",
      "text": "this"
    }, {
      "user": "him",
      "text": "that"
    }]
  },
  {
    .....
  }
]
ruby-on-rails ruby json mongodb mongomapper
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

1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.