neo4j / cypher - 为什么要排除起始节点?

时间:2013-05-25 10:30:36

标签: database graph neo4j cypher

我有一个简单的图表:

当我在neoeclipse中运行这个简单的查询时:

START me=node:node_auto_index(name="Me") 
MATCH me-[:LIVES_IN]->()<-[:LIVES_IN]-(f)
RETURN f.name;

只有我的女朋友才归还!

为什么我被排除在结果之外?

Results
f.name  Girlfriend

1 个答案:

答案 0 :(得分:4)

因为路径(您在匹配中指定的路径)将永远不会包含两次相同的关系 要找到包括您自己在内的所有居住在同一地点的人,您需要分成两个行动,一个使用with声明找到您的城市,另一个收集该城市的人员:

start me=node:node_auto_index(name='Me') 
match me-[:LIVES_IN]->homebase 
with homebase 
match homebase<-[:LIVES_IN]-people 
return people

请参阅http://console.neo4j.org/?id=t0wjhg