我在 neo4j 中运行了这个查询:
MATCH (n1:`Anumber`)-[*..2]-(n2)
WHERE n1 <> n2
AND all(node in nodes(n1)-[*..2]-(n2) WHERE node:`Anumber` OR node:`Bnumber`)
WITH n1, n2, COLLECT(p) AS paths
WHERE size(paths) > 1
RETURN n1, n2, size(paths) AS degree, paths
但出现此错误:
Invalid input '[': expected "+" or "-" (line 3, column 27 (offset: 76))
"AND all(node in nodes(n1)-[*..2]-(n2) WHERE node:`Anumber` OR node:`Bnumber`)"
如何解决这个问题?
你可能打算使用这个逻辑:
MATCH p=(n1:Anumber)-[*..2]-(n2)
WHERE n1 <> n2 AND
ALL(n IN NODES(p) WHERE n:Anumber OR n:Bnumber)
WITH n1, n2, COLLECT(p) AS paths
WHERE size(paths) > 1
RETURN n1, n2, size(paths) AS degree, paths