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
Si la requête est fausse, comment puis-je l'interroger à l'aide du numéro
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.
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
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