Разрешить параметры для глубины в запросе Cypher

Вы можете указать ширину и; высота в вашем запросе к графику Facebook api: http://graph.facebook.com/user_id/picture?width=500&heigth=500

0
задан Bilal 5 March 2019 в 16:09
поделиться

4 ответа

Параметры не позволяют устанавливать метки узлов, метки отношений, глубины отношений.

Если вам действительно нужна эта глубина в качестве параметра, то создайте запрос в виде строки в Python и передайте ему глубину отношений в качестве параметра.

Сохраните другие параметры (здесь go), как в запросе.

0
ответ дан Raj 5 March 2019 в 16:09
поделиться

Как насчет

MATCH tree = (n:Class)-[r:SUBCLASSOF*..10]->(parent)
WHERE LENGTH(tree)<=$depth
0
ответ дан Graphileon 5 March 2019 в 16:09
поделиться

Благодаря ответу @Raj самым простым решением, которое я нашел, было использование .format()

Запрос становится:

query =  '''
    MATCH tree = (n:Class)-[r:SUBCLASSOF*{depth}]->(parent)
    WHERE n.obo_id = "{go}"
    RETURN [n in nodes(tree) | n.obo_id] as GOID
'''

Затем создается запрос и выполняется db.run() [116 ]

full_query = query .format(go=goid, depth="..2")
for record in db.run(full_query):
    ...
0
ответ дан Bilal 5 March 2019 в 16:09
поделиться

Вы можете использовать параметры для аргументов minLevel и maxLevel функции APOC apoc.path.expand .

Например:

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
ответ дан cybersam 5 March 2019 в 16:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: