首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果两个节点之间有一个节点,则为Neo4J深度

如果两个节点之间有一个节点,则为Neo4J深度
EN

Stack Overflow用户
提问于 2019-03-08 01:56:44
回答 1查看 29关注 0票数 1

我有以下疑问:

代码语言:javascript
复制
MATCH
   (exp:Expert {name: "Somebody"})-[:PUBLISHED_BY]-(pub1:Publication)-[:PUBLISHED_BY]-(coexp:Expert),
   (coexp:Expert)-[:PUBLISHED_BY]-(pub2:Publication)-[:PUBLISHED_BY]-(cocoexp:Expert)
RETURN exp,pub1,pub2,coexp,cocoexp
LIMIT 300

我想要返回的内容如下:

代码语言:javascript
复制
(expert)--(publication)--(coexpert)
(expert)--(publication)--(coexpert)--(publication)--(cocoexpert)

但它也会返回:

代码语言:javascript
复制
(expert)--(publication)--(coexpert)--(publication)--(cocoexpert)--(publication)--(cococoexpert)
...

在第二部分中,我尝试这样做:

代码语言:javascript
复制
(coexp:Expert)-[:PUBLISHED_BY]-(pub2:Publication)-[:PUBLISHED_BY*0..1]-(cocoexp:Expert)

但没有成功。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-08 08:13:54

您的查询存在基数问题。如果您想有选择地匹配第二部分,可以将其分开,并向其添加一个可选的match子句。以下查询应按预期工作:

代码语言:javascript
复制
MATCH (exp:Expert {name: "Somebody"})-[:PUBLISHED_BY]-(pub1:Publication)-[:PUBLISHED_BY]-(coexp:Expert)
OPTIONAL MATCH (coexp)-[:PUBLISHED_BY]-(pub2:Publication)-[:PUBLISHED_BY]-(cocoexp:Expert)
Where exp<>coexp And exp<>cocoexp And coexp<>cocoexp
RETURN exp,pub1,pub2,coexp,cocoexp
LIMIT 300
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55050095

复制
相关文章

相似问题

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