2016-04-04 14 views
0

ノードの子のjsonを作成したいと思います。私は、特定のノードのすべての子を取得するには、このコマンドを使用しています:Neo4jクエリからリストを取得する

match(t:TAG)<-[children:CHILD_OF]-(subtag:TAG) where t.name="brand" 
return t.eid as parent, collect(subtag.eid) as child 

このように私は私の結果を得る:私は今、Javaで子どもたちのリストにアクセスしたい

6aada019f7312fb1 [967b5461b2ff7c0b, a81e1772e4f9f7ef, 3dfbbd025548c0972a372a88e7de626af, 2009a1e160299c775d2ff15786ce33208, 2342ee1b2d940ef949442445eff52081c, 0b0f878f-5061-48e9-90db-8c64aa9f8982, 81692c4c-8acb-4aea-b985-ae493a1b9b67, e21c063c-7432-4094-85ac-16bf02f92a8e, 6fc485a0-5a05-49d0-a061-091077a95af7] 

String query = "match(t:TAG)<-[children:CHILD_OF]-(subtag:TAG) where t.name=\"brand\" return t.name as parent, subtag.name as child"; 
     Iterable<Map<String, Object>> itr = Neo4j.queryLagData(query, null); 
for(Map m : itr){ 
      String parent = (String)m.get("parent"); 
      String children = (String)m.get("child"); 

     } 

私は今、子供たちの弦を分割する必要がありますか?それとも私に直接子どものリストを与える方法か、子供たちに直接子どもを与える方法がありますか?

答えて

1

。あなたの "子"フィールドは文字列のリストでなければなりません。 。 {name} のように、タグ名にパラメータを使用する必要があります。繰り返しとクエリを組み合わせることができます

String query = "match(t:TAG)<-[children:CHILD_OF]-(subtag:TAG) where t.name={name} "+ 
       "return t.name as parent, collect(subtag.name) as children"; 
for(Map row : Neo4j.queryLagData(query, singletonMap("name","brand"))) { 
    String parent = (String)row.get("parent"); 
    List<String> children = (List<String>)row.get("children"); 
} 
+0

neo4jブラウザでパラメータを渡すにはどうすればよいですか? – tanvi

関連する問題