Я довольно новичок в мире графических баз данных и пытаюсь получить ответ от Neo4J в формате JSON.У меня есть отношения ниже.И мой ожидаемый ответ будет таким:
[
{
"id": "3cabc43c-59b6-47aa-b72f-3f1462c7ccfa",
"name": "DependencyNetwork",
"tasks": [
{
"id": "1e3217da-0df4-4162-80cd-3205b5740cc7",
"name": "First",
"department": "department",
"earliestStart": 2,
"duration": 5,
"latestEnd": 4,
"dependsOn": [
{
"id": "666752dd-6a73-44d8-a899-9c4151bbf9b5",
"name": "Second"
},
{
"id": "666752dd-6a73-44d8-a899-9c4151bbf9b5",
"name": "Second"
}
]
},
{
"id": "666752dd-6a73-44d8-a899-9c4151bbf9b5",
"name": "Second",
"department": "department",
"earliestStart": 2,
"duration": 5,
"latestEnd": 4,
"dependsOn": [
{
"id": "1e3217da-0df4-4162-80cd-3205b5740cc7",
"name": "First"
}
]
}
]
}
]
Теперь я реализовал приведенный ниже запрос, который не является тем, что я хотел бы сделать:
MATCH (task:Task)-[r:BELONGS_TO]->(dn:DependencyNetwork)
WITH task as task, dn as dn
OPTIONAL MATCH (task:Task)-[r:PRECEDES]->(dep:Task)
WITH dn as dn, task as task, dep as dep
RETURN dn.dId as dId, dn.name as dnName,
task.tId as tId, task.name as taskName, task.duration as taskDuration, task.latestEnd as taskLatestEnd,
task.department as taskDepartment, task.earliestStart as taskEarliestStart,
dep.tId as depId, dep.name as depName