【问题标题】:Retrieving data from multiple nodes in neo4j Cypher从 Neo4j Cypher 中的多个节点检索数据
【发布时间】:2017-04-15 00:12:29
【问题描述】:

我正在尝试使用以下密码从多个相关节点检索相关数据:

Match (n {email:{paramEmail}})-[*..3]-(m) Return n,m",
       { paramEmail: email})

问题是,如果还没有现有的关系,那么我会返回零行......虽然 user(n) 存在但找不到用户但此时没有任何关系。我仍然需要来自 user(n) 节点的属性,所以我必须单独调用。是否存在即使与 m 没有关系也会返回 n 的查询?

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    是的,首先将用户与电子邮件匹配,然后使用 OPTIONAL MATCH 匹配其余部分:

    MATCH (n {email:{paramEmail}})
    OPTIONAL MATCH (n)-[*..3]-(m) Return n,m
    

    另外,我建议您在节点上使用标签。这样,您可以通过电子邮件快速查找 :User(在 :User(email) 上创建索引之后)。现在,查询必须扫描图表的所有节点以找到具有给定电子邮件参数的节点。

    【讨论】:

    • 谢谢。我确实在搜索中使用标签和索引。
    猜你喜欢
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 2013-12-27
    相关资源
    最近更新 更多