【发布时间】:2015-04-13 10:37:34
【问题描述】:
我有一个图表数据库,所以里面有一些像这样的模式:
(n1)-[:a]->(n2),
(n1)-[:b]->(n2),
(n1)-[:c]->(n2),
(n1)-[:e]->(n2),
(n1)-[:d]->(n3),
(n2)-[:b]->(n4)
我希望所有图表都具有这种模式
MATCH p={
(n3)<-[:d]-(n1)-[:a]->(n2)-[:b]->(n4),
(n1)-[:b]->(n2)<-[:c]-(n1),
(n1)-[:e]->(n2)
}
RETURN p
有可能吗?我已经搜索了一点,但我还没有找到如何去做。 我知道我们可以使用“|”对于这样的类型
()-[:a|b]->()
但是没有“&”,并且路径分配只适用于没有“,”的模式。
谢谢
编辑: 如果它可以帮助,这是我正在寻找的另一个例子: 在包含电影、人物和关系的数据库中,例如 ACTED_IN、KNOWS、FRIEND 和 HATE 我想要包含一个演员“Actor1”(他在电影“M”中 ACTED_IN)的所有图表,他知道“Person1”、朋友“Person2”和讨厌“Person3”,他们 ACTED_IN 同一部电影“M”。
像“Michael Hunger”答案中的 UNION 不起作用,因为我们有多个子图而不是图。此外,某些子图可能不是更大模式的正确答案。
【问题讨论】:
标签: neo4j pattern-matching cypher