这是我的图表架构(小部分):
BusStation
是扩展V
(顶点)的类。
每个BusStation
元素都有stationId
属性,但有一些值(1,2,3,4,5 ...)。
Bus
是扩展E
(Edge)的类。
每个Bus
元素都有三个属性:
busId
:两站(长)之间的公共汽车ID departure
:巴士从车站出发的时间(日期时间)arrival
:公交车来到下一站(日期时间)的时间我想从$path
BusStation
找到stationId = 1
BusStation
到stationId = 5
SELECT $path as path FROM (TRAVERSE outE(Bus), inV(BusStation) FROM select * from BusStation where stationId = 1 strategy BREADTH_FIRST) WHERE @rid == #17:3509
。
当我通过编辑器/ Java代码执行此查询时:
stationId = 1
我将获得最短的路径,但我必须遵循一些条件:
首先,我想要在同一辆公共汽车上行驶更长时间。这意味着,如果我Bus
busId = 1
stationId = 2
busId = 1
stationId = 3
,stationId = 4
,busId = 1
,do {
objects = doQuery(from);
from += 200
} while ( !objects.isEmpty() )
,依此类推Stream.iterate(0)(_+200)
.map( from => doQuery(from) )
.takeWhile( objects -> !objects.isEmpty )
因为我没有doQuery
我会选择一种可能的能力。
其次是过滤一辆公共汽车和出发公共汽车到另一辆公共汽车的到达时间。我必须注意,如果有一辆公共汽车在09:00到达车站,我必须从那辆公共汽车站的公共汽车中选择在到达时间(09:00)之后有出发时间。
您是否了解如何通过查询来过滤此条件?