0
votes

Autoriser les paramètres de la profondeur dans la requête CYPHER

J'utilise NEO4J Bolt Driver 1.7 pour Python à extraire Chemins d'une base de données spécifique, voici un échantillon de code qui provoque le problème.

[['GO:0051838', 'GO:0051801'],
 ['GO:0051838', 'GO:0051801', 'GO:0051883'],
 ['GO:0051838', 'GO:0051801', 'GO:0051715'],
 ['GO:0051838', 'GO:0051873'],
 ['GO:0051838', 'GO:0051873', 'GO:0051883'],
 ['GO:0051838', 'GO:0051873', 'GO:0051852']]


0 commentaires

4 Réponses :


1
votes

Les paramètres ne sont pas autorisés à définir des étiquettes de nœuds, des étiquettes de relation, des profondeurs de relation.

Si vous avez vraiment besoin de cette profondeur sous forme de paramètre, créez une requête en tant que chaîne en python et transmettez-la en tant que paramètre.

Gardez d'autres paramètres (ici Go ) Comme il se trouve dans la requête.


1 commentaires

Vous pouvez rechercher une solution dans le plugin APOC pour cela



0
votes

Qu'en est-il de

MATCH tree = (n:Class)-[r:SUBCLASSOF*..10]->(parent)
WHERE LENGTH(tree)<=$depth


0 commentaires

0
votes

Vous pouvez utiliser Paramètres pour le MINLLEVEL CODE> et MAXLEVEL CODE> Arguments à la fonction APOC apoc.path.expand .

Par exemple: P>

MATCH (n:Class)
WHERE n.obo_id = $go
CALL apoc.path.expand(n, "SUBCLASSOF>", "", 1, $depth) YIELD path
RETURN [n IN NODES(path) | n.obo_id] AS GOID


0 commentaires

0
votes

Grâce à @raj Répondre, la solution la plus simple que j'ai trouvée était d'utiliser .format ()

La requête devient: xxx

Puis construit la requête et exécuté db.run () xxx


0 commentaires