2017-07-22 3 views
1

neo4jのあるノードの入出力度を取得したい。一つの方法は、次のクエリを使用することです:neo4jのノードのO(1)時間内にノードの入出力度を取得できますか?

MATCH (u: Node{ name: 'Node 1' })-[]->(v) RETURN count(v);

これはuの関係のために見上げ必要です。

他の方法は、挿入されたノードの次数を更新し続けることです。ノードを見つけるだけで次数を取得できます。

私たちはこれを自分自身で管理する必要がありますか、それともneo4jが管理しているので、ノードを見つけるだけでその程度を得ることができます。 私はcypherクエリかpythonドライバのいずれかでそれをやりたい。

答えて

3

はい、size()機能は、ノード上のJava getDegree()方法の同等で、O(1)操作です:

戻り着信と発信:

MATCH (u: Node{ name: 'Node 1' }) 
RETURN size((u)-->()) AS degreeOut, 
size((u)<--()) as degreeIn 

これはあなたの場合も同じです特定の関係タイプで欲しい:

MATCH (u: Node{ name: 'Node 1' }) 
RETURN size((u)-[:FOLLOWS]->()) AS followingCount 
関連する問題