Neo4j 中有没有一种方法,使用 cypher 或 gremlin,返回一个节点列表,这些节点之间有一组公共节点?
一个例子是
Person1-[KNOWS]->Friend1
Person1-[KNOWS]->Friend2
Person1-[KNOWS]->Friend3
Person2-[HATES]->Friend2
Person2-[HATES]->Friend3
我想开始Person1
说,“找到我讨厌所有我认识的人的人”,这应该返回,Person2
因为Person1
知道Friend2,Friend3
和Person2
讨厌Friend2,Friend3
。
我从寻找联系开始,
START
person=node(1)
MATCH
person-[KNOWS]->friend<-[HATES]-enemy
RETURN
enemy
但我似乎无法找到一种方式来表达它,以至于这个人不得不恨所有的朋友。
这可以在 Cypher 中完成吗?