如何在Neo4J中选择文件分层树并将其显示为树JS对象?

时间:2018-08-14 03:45:44

标签: neo4j

我以这种方式表示文件/文件夹层次结构:

CREATE (u:User{name: 'Sarah'})

CREATE (u)-[:OWNS]->(d:Directory{name: 'Homework'})
CREATE (d)-[:OWNS]->(:Note{name: 'French', content: 'Omelette du fromage'})
CREATE (d)-[:OWNS]->(:Note{name: 'Math', content: '2 + 2 = 4'})
CREATE (d)-[:OWNS]->(da:Directory{name: 'Completed'})
CREATE (da)-[:OWNS]->(:Note{name: 'Science', content: 'Blah blahb lah})

CREATE (u)-[:OWNS]->(dx:Directory{name: 'Hobbies'})
CREATE (dx)-[:OWNS]->(:Note{name: 'Sewing', content: 'Fun!'})
CREATE (dx)-[:OWNS]->(:Note{name: 'Dancing', content: 'Tiring'})

莎拉的文件排列方式如下

Homework/
    French.txt
    Math.txt
    Completed/
        Science.txt
Hobbies/
    Sewing.txt
    Dancing.txt

我的目标是使用官方Neo4J JS库发出一个查询,使我得到一个类似于树的对象

[
  {
    name: "Homework",
    label: "Directory",
    children: [
      {
        name: "French",
        label: "Note"
      },
      {
        name: "Math",
        label: "Note"
      },
      {
        name: "Completed",
        label: "Directory",
        children: [
          {
            name: "Science",
            label:  "Note"
          }
        ]
      }
    ]
  },
  {
    name: "Hobbies",
    label: "Directory",
    children: [
      {
        name: "Sewing",
        label: "Note"
      },
      {
        name: "Dancing",
        label: "Note"
      }
    ]
  }
]

但是我是Neo4J和图形数据库的新手,而且我发现很难甚至在文档中搜索我在说什么。这种查询可能吗?我尝试过

MATCH path = (:User{name: 'Sarah'})-[:OWNS*]->(c) RETURN path

但这似乎返回平面节点数组,而不是树。我应该读什么?

0 个答案:

没有答案