【发布时间】:2015-01-07 20:01:16
【问题描述】:
我在 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 cypher 和 neo4j cypher nested collect 最终将所有父节点组合在一起,用于我正在搜索的主子节点。
根据反馈增加一些清晰度:
每个成员都有一个唯一的标识符。工会目前都与 PARENT 关系相关联。一切都被索引,因此性能不会受到影响。当我运行查询以获取节点图时,我得到了我期望的结果。我正在尝试返回一个可用于 D3 可视化目的的输出。理想情况下,这将通过 Cypher 查询来完成,因为我正在使用 API 从正在构建的前端访问 neo4j。
添加示例查询:
MATCH (p:Person)-[:PARENT*1..5]->(c:Person)
WHERE c.FirstName = 'Bob'
RETURN p.FirstName, c.FirstName
此查询返回五代每个父代的列表,但不是显示层次结构,而是将“Bob”列为每个关系的子代。是否有一个 Cypher 查询至少可以显示数据中的每个关系?我可以从那里根据需要对其进行格式化...
【问题讨论】:
-
请提供更多信息;您使用的是 REST API 还是嵌入式数据库?如果您使用的是 REST API,您的问题可能会简化为将 REST API 吐出的 JSON 转换为您正在寻找的这种结构的任务。 neo4j.com/docs/stable/rest-api.html