2016-04-04 4 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 

Я получаю результат:

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] 

Теперь я хочу, чтобы получить доступ к списку детей в Java.

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"); 

     } 

Должен ли я теперь разделить цепочку детей? Или есть метод, который даст мне список детей напрямую или метод, который даст мне детей как json напрямую?

ответ

1

. Поле «child» должно быть списком строк. . вы должны использовать параметр для имени тега, например {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

Смежные вопросы