密码连接到一组节点

时间:2017-03-14 09:18:30

标签: neo4j cypher graph-databases

通过这个密码查询,我能够找到我想要的所有节点

 match (t:FacebookPage)-[l:LIKED_BY]-(p:FacebookPost)-[r:WRITTEN_BY]-(n:FacebookAccount)
    where n.facebookId IN ["alpha", "beta", "gamma"] 
    return t,l,p,r,n

现在我想要一些theese节点: 连接到多个不同n节点的t节点。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用WITHWHERE子句进行其他过滤。像这样

match (t:FacebookPage)-[l:LIKED_BY]-(p:FacebookPost)-[r:WRITTEN_BY]-(n:FacebookAccount)
where n.facebookId IN ["alpha", "beta", "gamma"]
with t,count(distinct(n)) as count where count > 1
return t

如果你想要返回所有关系,我认为你必须做两个MATCH子句,因为过滤的工作取决于你的回报(聚合)

match (t:FacebookPage)-[l:LIKED_BY]-(p:FacebookPost)-[r:WRITTEN_BY]-(n:FacebookAccount)
where n.facebookId IN ["alpha", "beta", "gamma"]
with t,count(distinct(n)) as count where count > 1
match (t)-[l1:LIKED_BY]-(p1:FacebookPost)-[r1:WRITTEN_BY]-(n1:FacebookAccount)
return t,l1,p1,r1,n1