Neo4j - 多关系类型匹配

37

我希望通过多种关系类型来匹配实体之间的关系。

以下查询是否可行:

match (Yoav:Person{name:"Yoav"})-[:liked & watched & ... ]->(movie:Movie) return movie

我需要在所有关系类型之间添加 "and";Yova 喜欢并观看了一部电影。

1个回答

60

是的,你可以像这样做:

match (gal:Person{name:"Yoav"})-[:liked|:watched|:other]->(movie:Movie) 
return movie

请查看文档:匹配多个关系类型

编辑:

从评论中得知:

我需要在关系类型之间使用 "and",而不是 "or"

在这种情况下,您可以执行以下操作:

match (Yoav:Person{name:"Yoav"})-[:liked]->(movie:Movie),
(Yoav)-[:watched]->(movie),
(Yoav)-[:other]->(movie)
return movie

:liked|:watched|:other == 喜欢和观看和其他, :liked|watched|other == 喜欢或观看或其他? - Stav Alfi
1
我需要在关系类型之间加上“和”...你给了我一个“或”。 - Stav Alfi
1
你可以使用以下代码:match (Yoav:Person{name:"Yoav"})-[:liked]->(movie:Movie), (Yoav)-[:watched]->(movie), (Yoav)-[:other]->(movie) return movie - Bruno Peres
请更新您的答案,以便我可以接受它。谢谢! - Stav Alfi
1
@MichaelBlack 参考链接,即不是 :R1|:R2 而是 :R1|R2。 - vldbnc
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接