我有一个查询,它正在查看公司、组、监视列表和成员的图表。有关数据库中的数据,请参阅geoff 格式的虚拟数据的要点。我还设置了一个控制台 neo4j供任何人使用。
查询的目的是获取组列表以及与组及其相关监视列表有关系的成员(成员是个人或公司的通用术语)的数量。
通过下面的查询,我得到了正确的警报号码,但我缺少“空组”,因为它没有任何成员或监视列表。我尝试将各种关系设为可选,但最终导致警报计数错误,因为它使用的是与该组相关的监视列表。我已经尝试了无数种编写查询的方法,但就是无法解决这个问题。
START company=node(233), group=node:node_auto_index("_type:group")
MATCH company-[:OWNS]->group-[?:LINKED_TO]->watchlist-[:WATCHING|APPOINTMENT*1..2]-member<-[:WATCHING]-group
RETURN group, COUNT(DISTINCT(member)) as alerts
ORDER BY group.name
理想情况下,我想让整个路径段将一个组连接到成员,然后作为可选的监视列表,但是我无法在文档中找到如何做到这一点,或者这是不可能的。除了做两个查询之外,还有其他方法吗?
正确的结果是组和警报应该是:
Big Dot Coms, 1
Big Hitters, 4
Empty group, 0
Old CEOs, 1