Eag*_*Eye 3 neo4j graph-databases cypher
我有一个具有PersonId属性的Person节点和一个具有DocumentId属性的Document节点.
关系就像我们在电子邮件中一样,
(person)-[:SENT]->(doc)
(doc)-[:TO]->(person)
(doc)-[:CC]->(person)
(doc)-[:BCC]->(person)
Run Code Online (Sandbox Code Playgroud)
现在,当我按照附加的图像显示查询时,在第二个查询中,带有SIZE功能的第4列在第2行中给出"1".
你能说为什么我在那里得到1的数量?即使我指定关系类型:TO.需要帮助请叫我.
提前致谢.
关系类型(:TO)不是MATCH它的一部分,它是它的一部分RETURN.(路径)从所述第二查询返回的行是完全一样的那些从第一查询返回的,但你简单地返回一个附加的"列",这是路径数(d)-[:TO]->(rc),在一对节点之间的对应于该行.这对节点是相同的,因此它将给出相同的结果(1).
我想你的图表的相关部分看起来像这样:
查询模式的图形(p:Person { PersonId: 4})-[s:SENT]->(d:Document)-[r]->(rc:Person)将返回两个匹配的路径:
(person 4)-[:SENT]->(document 10)-[:BCC]->(person 3)(person 4)-[:SENT]->(document 10)-[:TO]->(person 3)注意两行中涉及的节点是如何相同的.
现在,对于每个匹配/行,您将返回文档与该行的接收者之间的关系数:TO,即1,因为:TO文档10和人3之间显然存在单个关系.
将:TO在RETURN您的查询的一部分是不相关的精髓r在你们的关系MATCH.首先,使用a MATCH来检索图形中您感兴趣的节点/关系,然后根据这些节点/关系(the RETURN)进行操作.