如何使用Neo4J建模和返回分层数据?

时间:2016-09-05 01:17:39

标签: neo4j tree cypher hierarchical-data

我发布了一个关于使用SQL Server 2016返回分层/树数据结构的问题here

我想知道如何对Neo4j cypher查询做同样的事情?

这是当前存在的遵循相邻列表格式的数据。所有人都有一个名为 PersonId 的ID。该人的父亲指向另一个身份父亲的人。

    PersonId    FatherId    Name
    1           NULL        4th Grand Father
    2           1           3rd Grand Father
    3           2           2nd Grand Father
    4           3           Grand Father
    5           4           Father
    6           4           Uncle
    7           6           Cousin
    8           5           Brother
    9           5           Me

必须以以下格式返回JSON数据:

[
  {
    "Name": "4th Grand Father",
    "Children": [
      {
        "Name": "3rd Grand Father",
        "Children": [
          {
            "Name": "2nd Grand Father",
            "Children": [
              {
                "Name": "Grand Father",
                "Children": [
                  {
                    "Name": "Father",
                    "children": [
                      {
                        "Name": "Brother"
                      },
                      {
                        "Name": "Me"
                      }
                    ]
                  },
                  {
                    "Name": "Uncle",
                    "children": [
                      {
                        "Name": "Cousin"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
]

1 个答案:

答案 0 :(得分:1)

虽然这不是您问题的直接答案 - 作为一个开始的地方,您可以查看Rik Van Bruggen关于家庭关系图表的博客文章:http://blog.bruggen.com/2014/01/leftovers-from-holidays-genealogy-graphs.html?q=family&view=magazine

我知道您需要这种特殊格式,但它不能很好地处理更复杂的关系或答案。