json – 用Neo4J创建家谱

前端之家收集整理的这篇文章主要介绍了json – 用Neo4J创建家谱前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Neo4J中有一组家族树的数据,我正在尝试构建一个Cypher查询,该查询生成类似于以下内容JSON数据集:
{Name:  "Bob",parents: [
          {Name:  "Roger",parents: [
                Name: "Robert",Name: "Jessica"
             ]},{Name:  "Susan",parents: [
                Name: "George",Name: "Susan"
             ]}
      ]}

我的图与MEMBER节点之间的PARENT关系(即MATCH(p.Member) – [:PARENT] – >(c.Member)).我发现Nested has_many relationships in cypherneo4j cypher nested collect最终将所有父母分组在一起,为我正在搜索的主要子节点.

根据反馈添加一些清晰度:

每个成员都有唯一的标识符.工会目前都与父母关系有关.所有内容都被编入索引,以便性能不会受到影响.当我运行查询以返回节点图时,我得到了我期望的结果.我正在尝试返回一个输出,我可以将其用于D3的可视化目的.理想情况下,这将通过Cypher查询完成,因为我正在使用API​​从正在构建的前端访问neo4j.

添加示例查询

MATCH (p:Person)-[:PARENT*1..5]->(c:Person)
WHERE c.FirstName = 'Bob'
RETURN p.FirstName,c.FirstName

查询返回五代的每个父级列表,但不是显示层次结构,而是将“Bob”列为每个关系的子级.是否有Cypher查询至少会显示数据中的每个关系?我可以根据需要格式化它…

解决方法

你可能也看看 Rik van Bruggens Blog on his family data

关于你的查询

您已在此处创建路径模式:(p:Person) – [:PARENT * 1..5] – >(c:Person)您可以将其分配给变量树,然后对该变量进行操作,例如:返回树,或节点(树)或rels(树)或以其他方式对该集合进行操作:

MATCH tree = (p:Person)-[:PARENT*1..5]->(c:Person)
WHERE c.FirstName = 'Bob'
RETURN nodes(tree),rels(tree),tree,length(tree),[n in nodes(tree) | n.FirstName] as names

有关Cypher的更多信息,另请参阅密码参考卡:http://neo4j.com/docs/stable/cypher-refcard和在线培训http://neo4j.com/online-training.

别忘了

create index on :Person(FirstName);
原文链接:https://www.f2er.com/js/154071.html

猜你在找的JavaScript相关文章