2016-08-16 3 views
0

私は自分でneo4jを学習しようとしています。特定の条件を満たすすべてのノードを見つける方法を尋ねます。具体的には、私はグラフを持っていて、ノードを接続する唯一の関係は、関係:FOLLOWSです。neo4jの特定の要件を満たすすべてのノードを見つける方法

が少なくともkの "フォロワー"を持つグラフのすべてのノードを見つけるにはどうすればよいですか?

私はまさに私が

MATCH (a)-[:FOLLOWS]->(n), (b)-[:FOLLOWS]->(n) 
RETURN n 

にどちらの方法を行うだろう正確 2フォロワーを持つすべてのノードを見つける検索したい場合は、それが持っているすべてのノードを見つけることになると、上記の方法はかなり面倒なようですk「フォロワー」。

答えて

1

あなたが興味を持っているデータを絞り込むことが制限を追加するためにWHERE句で述語を使用します。

あなたはSIZE()関数を使用して、パターンの出現回数を見つけることができます。

また、ノード上のラベルを使用すると、クエリのスピードアップに役立ちます。この例では、次のことを仮定します。Personはノードのラベルです。

MATCH (p:Person) 
WHERE SIZE((p)<-[:FOLLOWS]-(:Person)) = 2 
RETURN p 

あなたは「少なくとも」の条件を満たすように不平等を使用することができます。あなたの(包括的)6〜10フォロワーを持つ人を与える

MATCH (p:Person) 
WHERE 5 < SIZE((p)<-[:FOLLOWS]-(:Person)) <= 10 
RETURN p 

:あなたは条件間で持っている場合は、そのようなチェーンあなたの不平等をすることができます。

関連する問題