У меня есть вложенные отношения has_many, которые я пытаюсь сопоставить с результатом json.Вложенные отношения has_many в cypher
Следующий пример из блога показывает вид, что я хочу сделать, за исключением того, что это не вложен
MATCH (a:Person { name: "Andres" })-[:FATHER_OF]->(child)
RETURN
{name:a.name, kids:collect(child.name)} as document
То, что я хочу, а не что-то вроде этого
MATCH (a:Person { name: "Andres" })-[:FATHER_OF]->(child)-[:has_read]->(book)-[:has_chapter]->(chapter)
RETURN
{name:a.name, kids:collect({"name":child.name, has_read:collect(book)})} as document
В этом случае я хотел бы вернуть объект json такой структуры:
{
"name": "Andres"
"kids": [
{
"name":"Bob"
"has_read": [
{
"name":"Lord of the Rings",
"chapters": ["chapter1","chapter2","chapter3"]
},
{
"name":"The Hobbit",
"chapters": ["An unexpected party","Roast mutton"]
}
]
},
{
"name":"George"
"has_read": [
{
"name":"Lord of the Rings",
"chapters": ["chapter1","chapter2","chapter3"]
},
{
"name":"Silmarillion",
"chapters": ["chapter1","chapter2"]
}
]
}
]
}
«собирать ({имя: ребенок. name, has_read: books}) «Я еще не видел этот синтаксис сбора. Документировано ли это где угодно? –
@BobB - http://neo4j.com/docs/stable/query-aggregation.html#aggregation-collect – OpenDataAlex