OrientDb图形在具有条件

时间:2016-11-10 10:55:28

标签: java sql graph orientdb graph-traversal

这是我的图表架构(小部分):

enter image description here

BusStation是扩展V(顶点)的类。 每个BusStation元素都有stationId属性,但有一些值(1,2,3,4,5 ...)。

Bus是扩展E(Edge)的类。 每个Bus元素都有三个属性:

  • busId:两站(长)之间的公共汽车ID
  • departure:巴士从车站出发的时间(日期时间)
  • arrival:公交车来到下一站(日期时间)的时间

我想从$path BusStation找到stationId = 1 BusStationstationId = 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 = 3stationId = 4busId = 1do { 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)之后有出发时间。

您是否了解如何通过查询来过滤此条件?

0 个答案:

没有答案