2017-04-04 4 views
0

J'ai ce noeud dans mon neo4j. Il s'agit d'un arbre généalogique.comment trouver les voisins d'un noeud dans neo4j?

Voici l'image: Graph View

Je veux trouver les tous les voisins d'un noeud donné de la feuille. Est-ce possible? Quelqu'un peut-il m'aider?

explication:

Cette requête Cypher retourne tous les petits-enfants pour Lucas Hankinson ':

MATCH(n:FamilyTree{name: 'Lucas Hankinson'})-[*2..2]->(m) RETURN collect(m) 

Si on m'a donné le nom d'un des petits-enfants de Lucas et je veux voir tout son/sa cousins ​​et frères et soeurs (essentiellement les nœuds voisins de ce petit-enfant) comment puis-je faire cela dans une requête Cypher.

+0

Pouvez-vous expliquer ce que vous entendez par "voisins"? Comment voulez-vous que la traversée fonctionne et quels nœuds souhaitez-vous renvoyer, étant donné un nœud dans votre exemple d'affichage? – InverseFalcon

Répondre

0

Vous pouvez essayer d'utiliser la notion de chemin. par exemple. A partir du nom Grand Enfant donné (par exemple Elwood Alger), trouvez le Grand Parent en utilisant le chemin (dans ce cas, Lucas Hankinson) et trouvez tous les Grands Enfants.

Requête:

MATCH (gc:FamilyTree{name: 'Elwood Alger'})<--(p:FamilyTree)<--(gp:FamilyTree) 
OPTIONAL MATCH (gp) -[*2..2]->(m) WHERE m.name <> 'Elwood Alger' RETURN collect(m) 

Merci, Vishal