2014-04-10 17 views
11

Sto cercando di trovare tutti i nodi con più di una relazione in entrata. Dato questi dati:Trova nodi neo4j con più di una relazione in entrata

a-[has]->b 
a-[has]->c 
d-[has]->b 

Quindi, sto cercando una query che restituisce 'b', perché ha più che uno in arrivo.

Questa domanda è chiusa. E restituisce 'a' e 'b', perché entrambi hanno 2 rapporti:

match (n)--() 
with n,count(*) as rel_cnt 
where rel_cnt > 1 
return n; 

Tuttavia, questa query (l'aggiunta di '->') non restituisce alcuna e non so perché :

match (n)-->() 
with n,count(*) as rel_cnt 
where rel_cnt > 1 
return n; 

Sto andando tutto sbagliato?

risposta

19

Funziona per voi?

MATCH()-[r:has]->(n) 
WITH n, count(r) as rel_cnt 
WHERE rel_cnt > 1 
RETURN n; 

Sto assumendo, forse erroneamente, che "ha" è il tipo di relazione appropriato. In caso contrario, prova:

MATCH()-[r]->(n) 
WITH n, count(r) as rel_cnt 
WHERE rel_cnt > 1 
RETURN n; 
+0

Grazie, entrambe le query funzionano e il mio originale. Si scopre che non stavo creando i nodi correttamente e avevo 2 nodi chiamati a. Un errore newbie, suppongo. – SteveS

Problemi correlati