我想知道,在Cypher内是否有办法获取某个节点x下游所有节点的计数。
对于我的特定用例,我有许多图形,它们是单独的实体,但存储在同一个实例中。我想为每个图表找出节点和关系计数是什么。
我已经有了这个关系 start r = rel()返回计数()
这对于节点而言 start n = node()return count()
用于数据库中的所有内容。
非常感谢,
埃蒙
答案 0 :(得分:2)
如果每个子图有一些“引用”或根节点,则可以使用路径表达式查找所有节点:
start root=node:roots(id="xx")
match root-[*..5]->end
return count(distinct end)
限制搜索深度是有意义的。
答案 1 :(得分:1)
您必须为您的nodes / rels中的所有属性编制索引。然后,您必须从这些索引开始计算,如果必要,请为每个图表将它们相加。 让我们假设我们有2个图表,书籍作者类型和汽车颜色类型。然后在cypher中获取每个图的总节点数:
start g1=node:node_auto_index('bookName:*'), g11=node:node_auto_index('authorName:*'),
g2=node:node_auto_index('carName:*'), g22=node:node_auto_index('carColor:*')
return count(g1)+count(g11) as graph1, count(g2)+count(g22) as graph2
所有关系都相似。我不知道任何可以简单地按未定义属性分组的密码解决方案 - 这可以轻松解决问题。