从neo4j Cypher中的多个节点检索数据

时间:2017-04-15 00:12:29

标签: neo4j cypher

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

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

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

1 个答案:

答案 0 :(得分:1)

是的,先将用户与电子邮件进行匹配,然后再使用OPTIONAL MATCH:

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

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