neo4j / cypher - 为什么起始节点被排除在外?

问题描述 投票:0回答:1

我有一个简单的图表:

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

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

只有我女朋友回来了!

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

Results
f.name  Girlfriend
database graph neo4j cypher
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.