我正在努力寻找家庭关系。
例如,我想知道我和父亲的妻子之间的关系是什么?它应该归还母亲。
我和母亲的女儿之间有什么关系?它应该归还姐姐。
这就是我的图表。有8个关系和2个标签(男性或女性)。
如何在不指定任何节点的情况下实现此目的?例如,如果我想知道我和我父亲的女儿之间的关系。
我想做MATCH () -[:Father]->()-[:Daughter]->()
之类的事情以及开始和结束节点之间的关系。
我确定这个查询绝对错误,但我希望你知道我在这里想要实现的目标。
答案 0 :(得分:5)
所以,
首先 - 你应该总是指定一些节点。
让我们创建一些数据:
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)
我和我母亲的女儿之间的关系是什么?它应该归还姐姐。
现在我们可以找到你问题的答案:
MATCH (me)<-[:Mother]-()<-[:Daughter]-(she)
MATCH (me)<-[r]-(she)
RETURN type(r)
结果:
Sister
我们做了什么:
例如,我想知道我和父亲的妻子之间的关系是什么?它应该归还母亲。
这样的事情应该有效:
MATCH (me)<-[:Father]-()<-[:Wife]-(she)
MATCH (me)<-[r]-(she)
RETURN type(r)
结果:
Mother