Neo4J密码选择其节点需要进一步匹配另一种模式的路径



我有一个包含航班、车站和飞机的域。该站通过飞行和飞行使用飞机连接。(这是我在 neo4j 上找到满足特定标准的所有路径的问题的扩展( 我想找到所有符合转机时间要求的有效航线,但也要使用有wifi的飞机。 我在 neo4j 控制台中创建了一些示例数据。这是 console.neo4j.org/r/sdcixy 的链接。 任何建议都会很棒。

第一步是获取所有飞行节点连接到属性"wifi"等于 1 的飞机节点的路径。此步骤由条款 1-4 实现。子句 5 将限定路径上的飞行节点传递到下一个"Where"子句 6 过滤掉连接不满足条件的路由。最后一个子句返回有效航线上的航班名称。

1. Match p=stb:Station-[:Connect*]->flt:Flight-[:Connect*]->ste:Station, flt-[:Use]->ac:Aircraft
2. Where stb.name='ST_B' and ste.name='ST_E'
3. distinct p as path, collect(ac) as acs
4. Where all ( ac in acs where ac.wifi = 1)
5. With filter(x in nodes(path) where x:Flight ) as flts
6. Where all ( i in Range(0,length(flts)-2) Where flts[i].arrvTime < flts[i+1].dptrTime)
7. Return extract(flt in flts | flt.name)

最新更新