重复计数

时间:2015-03-15 21:14:59

标签: neo4j cypher

想象一下,我有一个图形,其中对于Nod1类型的每对节点m,n,可以存在类型为Nod2的节点k,它们通过类型Rel的关系连接它们,也就是说,可以有多个模式kind p =(m:Nod1) - [r:Rel] - (k:Nod2) - [s:Rel] - (n:Nod1)。对于给定节点m(满足例如m.key ="无论"),我如何找到最大化将m连接到n的节点数k的节点n?例如:假设有3个节点k将m连接到n1,满足n1.key =" hello"连接m到n2的10个节点k满足n2.key =" world&#34 ;;如何构建一个检索节点n2的查询? :)

问题的标题是重复的,因为我认为如果我可以算上所有重复的问题就解决了问题。每个节点n的模式(即所有模式,其中n为" endnode")!! :)

1 个答案:

答案 0 :(得分:2)

首先匹配您的m;然后匹配您想要的模式,然后按不同的n节点进行过滤,并计算通过该k节点连接的n个节点的数量,您应该在那里。

MATCH (m:Nod1 { key: "whatever" })
WITH m
MATCH (m)-[r:Rel]-(k:Nod2)-[s:Rel]-(n:Nod1)
RETURN distinct(n), count(k) as x
ORDER BY x DESC;