Этот запрос на чистом Cypher должен работать, но он не является производительным, поскольку он будет сканировать все узлы, чтобы найти соответствующие x
узлы, и не сможет воспользоваться индексацией :
MATCH (x{propA: $0})
WHERE $1 IN LABELS(x)
RETURN EXISTS((x)-[:REL_B]->(:NodeB));
Более эффективный способ сделать это - использовать процедуру APOC apoc.cypher.run , чтобы выполнить запрос Cypher с нужной жестко закодированной меткой:
CALL apoc.cypher.run(
"RETURN EXISTS((:`" + $1 + "` {propA: $p})-[:REL_B]->(:NodeB)) AS res",
{p: $0}) YIELD value
RETURN value.res;
Таким образом, вы также можете воспользоваться индексированием .