我有一个具有PersonId属性的Person节点和一个具有DocumentId属性的Document节点。
关系与我们在电子邮件中的关系一样,
(person)-[:SENT]->(doc)
(doc)-[:TO]->(person)
(doc)-[:CC]->(person)
(doc)-[:BCC]->(person)
现在,当我按照附加的图像显示查询时,在第二个查询中,带有SIZE功能的第4列在第2行中给出“1”。
你能说为什么我在那里得到1的数量?即使我指定关系类型:TO。如果您还有其他需要,请告诉我。
先谢谢。
答案 0 :(得分:5)
关系类型(:TO
)不属于MATCH
的{{1}}部分。RETURN
。从第二个查询返回的行(路径)与从第一个查询返回的行(路径)完全相同,但您只需返回另一个"列",即路径数{{1对应于该行的节点对之间的。这对节点是相同的,因此它将给出相同的结果(1)。
我想你的图表的相关部分是这样的:
查询模式(d)-[:TO]->(rc)
的图形将返回两个匹配的路径:
(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)
关系的数量,这是1,因为很明显文件10和人3之间的单:TO
。
查询的:TO
部分中的:TO
基本上与您RETURN
中的r
关系无关。首先,使用MATCH
检索图表中您感兴趣的节点/关系,然后根据这些节点/关系(MATCH
)进行操作。
答案 1 :(得分:1)
您所看到的行为至少有两种情况:
1)从第4个人发送到第3个人的文档有2个。一个作为BCC
发送,一个作为TO
发送。
2)从第4个人发送给第3个人的文档指定的人3为BCC
收件人以及TO
收件人。