如何输出包含关系类型的路径?

时间:2016-09-06 22:13:55

标签: neo4j cypher

匹配并返回路径应该按路径顺序返回节点及它们之间的关系。

根据Cypher文档,这应该包括关系类型。如果您查看developer docs,并搜索以return p结尾的任何查询,则返回的模式始终包含每种关系的类型,例如:

[Node[2]\{name:"Michael Douglas"\},:ACTED_IN[5]\{role:"President Andrew Shepherd"\},Node[6]\{title:"The American President"\}]

但是,在Neo4j 3.0.3浏览器中(并且假设其他版本,还没有看到3.0.4更改日志中的修复),关系的任何输出(无论是作为路径的一部分还是其他方式) )仅返回关系属性,如果不存在属性,则返回空对象{}。类型根本没有输出:

[{name: Black}, {}, {name: Red}, {}, {name: Yellow}, {}, {name: Black}, {}, {name: Blue}]

我可以在另一列中单独输出关系,方法是将其添加到return:

EXTRACT(rel in RELS(path) | TYPE(rel)) as relType

但我真正想要的是路径输出(节点列表和每个节点之间的关系),但包括关系类型。

我是否可以启用某些选项,或者输出此功能的某些其他功能或查询解决方法?

1 个答案:

答案 0 :(得分:1)

在浏览器中,您可以点击Code标签(位于响应面板左侧,GraphRowsText下方)以查看完整Response(在右侧Commit Transaction框中)。

或者,您可以使用每个查询面板顶部的下载图标在JSON(或CSV)文件中下载完整响应。

完整响应包含所有关系数据和元数据(包括关系类型)。

[增订]

Code窗格显示浏览器Web应用程序对neo4j事务端点发出的POST个请求。因此,该窗格中的结果实际上与任何客户端将针对同一请求收到的结果相同。

但是,当您自己进行调用时,可以通过修改" Commit Transaction"的有效负载中的可选参数来减少返回的数据量(其中大部分是冗余的或可能是无趣的)。例如,您可以尝试使用"图表来指定resultDataContents数组"元素,省略" includeStats"完全是争论。响应基本上只包含"图表"数据元素。

相关问题