gpt4 book ai didi

json - 用Neo4J创建家谱

转载 作者:行者123 更新时间:2023-12-04 22:45:39 25 4
gpt4 key购买 nike

我在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最终将所有 parent 归为我要搜索的主要子节点。

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

每个成员都有一个唯一的标识符。联合当前都与PARENT关系相关联。一切都编制索引,因此性能不会受到影响。当我运行查询以仅返回节点图时,我得到了预期的结果。我正在尝试返回可用于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),可以将其分配给变量tree,然后对该变量进行操作,例如返回树或nodes(tree)rels(tree)或以其他方式对该集合进行操作:

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

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

别忘了
create index on :Person(FirstName);

关于json - 用Neo4J创建家谱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27827680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com