0

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

4

1 回答 1

1

第一步是获取所有飞行节点连接到属性“wifi”等于 1 的 Aircraft 节点的路径。这一步由第 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)
于 2013-09-24T15:19:17.940 回答