neo4j - Neo4j / Cypher - 查找路径,但该路径的中间节点不能是 X 类型
问题描述
我有这段代码可以找到最短路径:
p=shortestPath((startNode)-[*..10]-(endNode))
现在我想添加一个条件,即中间节点都不能是 X 类型。只有第一个节点具有 X 类型。
解决方案
我认为是这样的:
MATCH p=shortestPath((startNode)-[*..10]-(endNode))
WHERE none(node IN nodes(p)[1..-1] WHERE node:X)
关键是从过滤器中省略第一个和最后一个节点,如下所示:
nodes(p)[1..-1]
推荐阅读
- scala - 如何在scala中同时完成
- javascript - 如何返回此对象数组的总数?
- python - 使用多个条件查找最大值
- sql-server - 如何将多行中的一列连接起来,然后将该值插入另一行的单列中?
- android - 使用 Uri 加载从内部存储中选择的图像不起作用
- php - 如何使用可变变量 PHP 在 for 循环中创建字符串
- xpages - 浏览器后退按钮 - 中断 onClick 事件
- javascript - 使用 jquery 如何获取父 LI,其中 LI 的文本与我的按钮文本匹配?
- java - Spring AOP 不在代理类的 @Transactional 方法中注入事务
- c# - 使用多个 POST 方法将数据从视图传递到控制器?