首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4J引入关系变量会影响多跳关系的结果。

Neo4J引入关系变量会影响多跳关系的结果。
EN

Stack Overflow用户
提问于 2016-09-28 16:54:41
回答 1查看 130关注 0票数 0

在Neo4J中迈出第一步--有些东西我不太明白(也许与语法有关)

为什么会返回结果?

MATCH (d:People)-[HAS_VEHICLE*]->(v:Vehicle) return d, v

虽然这不会返回任何结果

MATCH (d:People)-[r:HAS_VEHICLE*]->(v:Vehicle) return d, v

它们之间的区别是引入了关系变量--但是为什么它会影响查询是返回结果还是根本没有结果呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-28 18:30:50

实际上,这两个查询之间的区别是,第一个查询没有指定关系类型。相反,第一个查询指定HAS_VEHICLE作为标识符。

关系类型之前必须加上冒号。因此,您的第一个查询应该是:

代码语言:javascript
复制
MATCH (d:People)-[:HAS_VEHICLE*]->(v:Vehicle) return d, v

编辑

上面的查询也不应该返回任何结果,这意味着您的DB中没有匹配指定模式的路径。例如,要匹配上述模式,所有关系都必须是HAS_VEHICLE类型的。

您可以修改查询以不需要HAS_VEHICLE类型,并返回与结果新模式匹配的路径上的实际关系类型:

代码语言:javascript
复制
MATCH (d:People)-[rels*]->(v:Vehicle)
RETURN d, EXTRACT(r IN rels | TYPE(r)) AS types, v;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39753462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档