web-dev-qa-db-fra.com

Neo4J obtient le noeud par ID

J'utilise neo4j pour l'un de mes projets. Il y a un nœud qui n'a qu'une seule propriété comme name. Je souhaite obtenir ce nœud en utilisant un ID, il possède déjà un ID, mais lorsque j'utilise ce code

MATCH (s:SKILLS{ID:65110}) return s

Il ne retourne rien, voici mon noeud

enter image description here

Si la requête est fausse, comment puis-je l'interroger à l'aide du numéro

72
Niraj Chauhan
MATCH (s)
WHERE ID(s) = 65110
RETURN s

La fonction ID vous donne l'identifiant d'un nœud ou d'une relation. Ceci est différent de toute propriété appelée id ou ID que vous créez.

117
Damon Horrell

Attention: la réponse suivante est incorrecte! START ne doit être utilisé que lors de l'accès à des index hérités . C'est désactivé dans Cypher 2.2 et supérieur .

Neo4j recommande d'utiliser WHERE ID(n) = , et indique en outre qu'il ne nécessitera qu'une seule recherche (ne recherche pas tous les nœuds pour trouver l'identifiant correspondant)

Garder cette réponse pour empêcher quiconque de faire la même erreur.

Vous pouvez utilisez WHERE ID(s) = 65110, mais ceci vérifiera l'ID de chaque noeud de votre base de données. .

Il existe un moyen plus efficace de le faire:

START s=NODE(517) MATCH(s) RETURN s
12
Code Bling

tu peux dire:

(n:User) where id(n) >=20 RETURN n

cela renverra tous les nœuds de type Utilisateur avec un ID de référence de nœud supérieur à 20

2
Wesam Na