【问题标题】:Cypher Query Return matched Nodes and optional relationshipsCypher 查询返回匹配的节点和可选关系
【发布时间】:2016-05-28 15:52:47
【问题描述】:

我正在尝试找到返回所有匹配节点及其可能存在的任何关系的最佳方式?

这是我的问题:

我需要返回所有创建项目的用户,所以

match (u : User)-[r:CREATE]->(p: Project) return u, collect(p)

足够简单,但用户也可以有其他关系,我想包括它们或可选地检查(返回真/假)

例如用户可能有关系推荐,我不想被它限制,但如果检查它是否存在与什么节点?

理想情况下,我的退货表应如下所示:

USER1 - 项目 - 推荐用户

USER2 - PROJECT(S) - NULL(没有人推荐)

【问题讨论】:

    标签: node.js neo4j cypher


    【解决方案1】:

    OPTIONAL MATCH 将匹配模式,如果不存在则返回 null

    MATCH (u : User)-[r:CREATE]->(p: Project) 
    OPTIONAL MATCH (u)-[:RECOMMEND]->(rec)
    RETURN u, collect(p), collect(rec)
    

    【讨论】:

      猜你喜欢
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多