【发布时间】:2014-10-24 11:22:01
【问题描述】:
我是 neo4j 的新手,正在学习电影示例。我一直在尝试做 Kevin Bacon 和 Meg Ryan 查询之间的经典最短路径,但也改变了列的输出。下面的查询有两种不同的方法。第一列我不明白为什么它不起作用。所以我有两个问题。
- 从依赖于的节点输出属性的最佳方式是什么 路径中的节点类型?
- 如何混合输出以实现 输出为演员名称、关系、电影名称、关系 演员姓名。我可以在不使用路径但挣扎时做到这一点 处理路径。
查询返回尝试示例:
MATCH p=shortestPath(
(bacon:Person {name:"Kevin Bacon"})-[*]-(meg:Person {name:"Meg Ryan"})
)
RETURN
[n in nodes(p) | case when labels(n) = 'Person' then n.name when labels(n) = 'Movie' then n.title end ],
[a in nodes(p) where has(a.name) | a.name],
[b in nodes(p) where has(b.title) | b.title]
由此产生的输出是(抱歉,不能张贴图片)
- null,null,null,null
- 凯文·培根、汤姆·克鲁斯、梅格·瑞恩
- 几个好人,壮志凌云
首选输出凯文培根,几个好男人,汤姆克鲁斯,壮志凌云,梅格瑞恩
【问题讨论】:
标签: neo4j