我正在努力寻找家庭关系.
例如,我想知道我和父亲的妻子之间的关系是什么?它应该归还母亲.
我和我母亲的女儿之间有什么关系?它应该归还姐姐.
这就是我的图表.有8个关系和2个标签(男性或女性).
如何在不指定任何节点的情况下实现此目的?例如,如果我想知道我和我父亲的女儿之间的关系.
我想做一些类似于MATCH () -[:Father]->()-[:Daughter]->()开始和结束节点之间的关系.
我确定这个查询绝对错误,但我希望你知道我在这里想要实现的目标.
所以,
首先 - 您应该始终指定一些节点.
让我们创建一些数据:
CREATE (me:Person)
CREATE (mother:Person)
CREATE (daughter:Person)
CREATE (me)-[:Son]->(mother)
CREATE (me)<-[:Mother]-(mother)
CREATE (me)-[:Brother]->(daughter)
CREATE (me)<-[:Sister]-(daughter)
CREATE (mother)-[:Mother]->(daughter)
CREATE (mother)<-[:Daughter]-(daughter)
Run Code Online (Sandbox Code Playgroud)
我和我母亲的女儿之间有什么关系?它应该归还姐姐.
现在我们可以找到你问题的答案:
MATCH (me)<-[:Mother]-()<-[:Daughter]-(she)
MATCH (me)<-[r]-(she)
RETURN type(r)
Run Code Online (Sandbox Code Playgroud)
结果:
Sister
Run Code Online (Sandbox Code Playgroud)
我们做了什么:
例如,我想知道我和父亲的妻子之间的关系是什么?它应该归还母亲.
这样的东西应该工作:
MATCH (me)<-[:Father]-()<-[:Wife]-(she)
MATCH (me)<-[r]-(she)
RETURN type(r)
Run Code Online (Sandbox Code Playgroud)
结果:
Mother
Run Code Online (Sandbox Code Playgroud)