2010-06-21 2 views
0

Ruby에서 mongomapper와 같은 것을 사용하여 컬렉션에서 검색 한 임의의 문서를 어떻게 트래버스 할 수 있습니까? 의 문서는 다음과 같은 형태 가정 해 봅시다 : 당신이 해시를 생성처럼 - 몽고 루비 드라이버도 MongoMapper/Mongoid에서 문서를 가져 오거나Ruby 및 MongoDB : mongomapper에서 가져온 임의의 BSON 문서 이동

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

답변

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 
+0

각 개체를 방문하는 것이 좋습니다. 그러나 임의적으로 중첩 된 요소를 처리하는 방법에 대해서는 약간 혼란 스럽습니다. – Dex

+0

답변을 업데이트했습니다. –

1

후에는합니다.

그래서 Ruby World에서 모든 해시처럼 바꿀 수 있습니다.

관련 문제