【问题标题】:Return type matched from multiple relationships in Neo4j with Cypher从 Neo4j 中的多个关系与 Cypher 匹配的返回类型
【发布时间】:2021-11-23 09:50:20
【问题描述】:

我知道您可以在 Neo4j 中匹配多个关系,例如文档中的这个示例:

MATCH (wallstreet {title: 'Wall Street'})<-[:ACTED_IN|:DIRECTED]-(person)
RETURN person.name

返回与“华尔街”具有 ACTED_IN 或 DIRECTED 关系的节点。

但是,有没有办法在这个查询中获取关系的类型?也就是说,我不仅要返回姓名,还要返回哪个关系适用于他/她,以便查看是 ACTED_IN 还是 DIRECTED 关系导致结果为输出。

你可以在这里做同样的事情:

MATCH (:Person {name: 'Oliver Stone'})-[r]->(movie)
RETURN type(r)

但这只是匹配任何关系。我想这样做,但仅限于子句中指定的两个关系。

谢谢

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    您查询的有效边类型之间不再需要额外的冒号。否则,您可以像在非特定边缘情况中一样使用该变量:

    MATCH (:Movie{title: 'The Matrix'})<-[r:ACTED_IN|DIRECTED]-(person)
    RETURN type(r), person.name
    

    【讨论】:

    • 非常感谢,这正是我正在寻找的语法!
    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多