我有问题在neo4j中检索路径排除某些标签.
敌人的例子,我有
-->(h)-->(j)
/
(a)-->(b)-->(c)-->(d)-->(i)
\
-->(f)-->(g)
Run Code Online (Sandbox Code Playgroud)
with hnode有一个Deleted标签.
我有疑问
MATCH path = (n)-[*]->(child) where id(n)={id of node a} and NOT child:Deleted RETURN path
Run Code Online (Sandbox Code Playgroud)
那么我想这个查询返回的完整路径,但不包括节点的子树h,因为节点h是Deleted.
返回树应该是这样的
(a)-->(b)-->(c)-->(d)-->(i)
\
-->(f)-->(g)
Run Code Online (Sandbox Code Playgroud)
但查询似乎无效.
谁能帮我这个.
谢谢
对我有用的是对路径中节点的列表理解:
MATCH path = ()-[*]->()
WHERE NONE(n IN nodes(path) WHERE n:Deleted)
RETURN path
Run Code Online (Sandbox Code Playgroud)
Tim*_*ehn -2
您需要检查两个节点的标签:
match p=((a)-[r:NEXT]->(b))
where not (a:Deleted or b:Deleted)
return p
Run Code Online (Sandbox Code Playgroud)
这是另一个例子:
match (a)-[r:NEXT]->(b)
where not (("Deleted" in labels(a)) or
("Deleted" in labels(b)))
return a, r, b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |