neo4j - 路径变量绑定返回重复的节点匹配 - 为什么?
问题描述
CREATE(:ENTRY {name:"alpha"})-[:REL]->(:ENTRY {name:"beta"})<-[:REL]-(:ENTRY {name:"gamma"})
现在,让我们尝试将相同的图形元素作为路径返回:
MATCH p=(:ENTRY {name:"alpha"})-[:REL]->(:ENTRY {name:"beta"})<-[:REL]-(:ENTRY {name:"gamma"})
RETURN p
我们将在表格视图中看到两个“测试版”:
{“名称”:“测试版”},
{“名称”:“测试版”}
但为什么?
解决方案
如果您从一个空数据库开始,这可能只是对返回路径时表格结果中显示的内容有些混淆。
您将看到连接节点的关系表示,每个关系表示由 3 部分组成:起始节点(根据路径排序,对于关系方向而言,起始节点不一定是起始节点)、关系的属性,然后是端节点。
所以分解它:
rel1 数据,rel2 数据
翻译为:
rel1 开始,rel1 道具,rel1 结束,rel2 开始,rel2 道具,rel2 结束
翻译为:
alpha 节点道具,rel1 道具,beta 节点道具,beta 节点道具,rel2 道具,gamma 节点道具
模式中关系的属性是空的,这解释了空映射。请注意,对于关系链,上一个关系结束的节点与下一个关系开始的节点相同。这就是为什么您看到 beta 出现两次的原因:
推荐阅读
- r - 如何在不知道绘图的确切坐标的情况下将文本放在绘图 (ggplot2) 上?
- java - 有没有办法用 JOOQ 生成 DAO,findById 返回 Optional
- java - Hadoop mapreduce wordcount-java.io.IOException:作业失败
- html - 带有下拉菜单的 HTML 单选按钮选项
- excel - 如何自动填充对excel中不同选项卡的引用?
- c - 将 nil 值添加到 lua 表
- python - 在 yaml 中声明 python 模块
- java - 从需要从自定义参数注入的 Spring Boot 控制台应用程序创建一个 Jar
- python - 试图绘制图表但返回空白
- javascript - 未捕获的类型错误:__webpack_require__.r 不是函数