2016-04-22 8 views
1

私はrethink db用にrubyドライバを使用していますが、配列を持つ入れ子要素についていくつか問題があります。Rubyドライバを使用してRethinkdbのReqlで複雑なクエリを作成する

私は私のデータは、所望の結果が「12345」で終わる「PROFILE_URL」リンクを持つ行を返すことです。この

[{"family_name"=>"Adam"}, 
{"family_name"=>"Bobby"}, 
{"family_name"=>"Crissy", 
    "groups"=> 
    [{"logo_url"=>"https://www.logourl.com/1111.png", 
    "name"=>"Sample Name 1", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=1111"}, 
    {"logo_url"=>"https://www.logourl.com/2222.png", 
    "name"=>"Sample Name 2", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=2222"}, 
    {"logo_url"=>"https://www.logourl.com/3333.png", 
    "name"=>"Sample Name 3", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=3333"}, 
    ]}, 
{"family_name"=>"Bobby"}, 
{"family_name"=>"Hillton", 
    "groups"=> 
    [{"logo_url"=>"https://www.logourl.com/4444.png", 
    "name"=>"Sample Name 1", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=4444"}, 
    {"logo_url"=>"https://www.logourl.com/5555.png", 
    "name"=>"Sample Name 2", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=55555"}, 
    {"logo_url"=>"https://www.logourl.com/6666.png", 
    "name"=>"Sample Name 3", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=12345"}, 
    ]}] 

のような構造をしています。 RubyとJavaスクリプトのミックスを使用して、私はこれを試みた:しかし、それはまだ結果を返すされていない

'r.table("profiles").filter{ |row| row['groups'].contains(r.js('function(group) { return group('profile_url').match("12345$") }'))}.run(conn)' 

、ルビードライバでそれを使用するための明確な方法があります?

望ましい結果を助け、事前に感謝してください

[{"family_name"=>"Hillton", 
    "groups"=> 
    [{"logo_url"=>"https://www.logourl.com/4444.png", 
    "name"=>"Sample Name 1", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=4444"}, 
    {"logo_url"=>"https://www.logourl.com/5555.png", 
    "name"=>"Sample Name 2", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=55555"}, 
    {"logo_url"=>"https://www.logourl.com/6666.png", 
    "name"=>"Sample Name 3", 
    "profile_url"=>"https://www.profileurl.com/groups?gid=12345"}, 
    ]}] 

だろう!!! :D

答えて

3

私は、これはあなたがやりたいだろうと思う:

r.table('profiles').filter {|row| 
    row['groups'].contains {|group| 
    group['profile_url'].match('12345$') 
    } 
} 
+0

は魔法のように動作し、ありがとう〜 – noobiehacker

関連する問題