1

我想知道,在 Cypher 中是否有办法计算某个节点 x 下游的所有节点。

对于我的特定用例,我有许多图表,它们是单独的实体,但存储在同一个实例中。我想知道,对于每个图,节点和关系计数是多少。

我已经有了这个关系 start r=rel( ) return count( )

这对于节点 start n=node( ) return count( )

对于数据库中的所有内容。

非常感谢,

埃蒙

4

2 回答 2

2

如果每个子图有一些“参考”或根节点,则可以使用路径表达式来查找所有节点:

start root=node:roots(id="xx")
match root-[*..5]->end
return count(distinct end)

限制搜索的深度是有意义的。

于 2012-11-30T07:52:29.157 回答
1

您必须索引节点/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

所有关系都相似。我不知道任何可以简单地按未定义属性分组的密码解决方案 - 可以轻松解决问题。

于 2012-11-29T14:15:40.227 回答