从neo4j/cypher json输出中使用d3js绘制图形
是否可以在单个密码查询中返回特定路径的不同节点和边。例如,使用下面的查询中的movies图分别返回movies和actors,我希望将所有节点一起返回。使用路径p=(…)和节点(p)实际上返回节点对,而不考虑使用distinct match(m:Movie{name:Rain})--(p:Person)返回{节点:collect(distinct{name:m.title}),演员:collect(distinct{name:a.name}),链接:collect({source:m.title,target:a.name}) 提前感谢您的帮助,从neo4j/cypher json输出中使用d3js绘制图形,neo4j,cypher,Neo4j,Cypher,是否可以在单个密码查询中返回特定路径的不同节点和边。例如,使用下面的查询中的movies图分别返回movies和actors,我希望将所有节点一起返回。使用路径p=(…)和节点(p)实际上返回节点对,而不考虑使用distinct match(m:Movie{name:Rain})--(p:Person)返回{节点:collect(distinct{name:m.title}),演员:collect(distinct{name:a.name}),链接:collect({source:m.title
Pierre得到了一些内部帮助,因此我将分享答案。使用neo'j 2.1.5,可以使用“展开”。 以下查询一次返回路径中不同节点和不同边的列表-至少在我的示例中是这样的:
match path = (p:Person {Name: 'Rain'})-[]-(m:Movie) unwind nodes(path) as p unwind rels(path) as r
return {nodes: collect(distinct p), links: collect(DISTINCT {source: id(startNode(r)), target: id(endNode(r))})}
顺便说一下,我也没有使用union对演员和电影进行分组。你不能像这样从Cypher返回JSON对象。考虑备份一些步骤,并思考NeN4J如何连接到JavaScript应用程序。大体上,您需要从Cypher获得一个结果集,然后使用单独的工具(不是neo4j)将其转换为适合d3js的JSON对象。另外,请查看下面的应用程序示例,它们都包含用于将Cypher结果转换为d3 JSON的代码。结构