发出查询Neo4j数据库的公交车起飞时间

时间:2017-03-06 13:00:01

标签: mysql database graph neo4j cypher

我是Neo4j的新手。我正在查询公交网络的图数据库。我已将数据导入到我的数据库中,但我在查询数据库时遇到了一些问题。

(1)在早上8点检索并显示数据库中的最短行程

  MATCH p=shortestPath((o:Origin)-[:NEXT*..]-(dt:Destination))
  WHERE o.hour = 8
  return p ORDER BY LENGTH(p) ASC 
  LIMIT 1;

以上代码产生"(无变化,无记录)"。我不知道出了什么问题。

节点标签(16)是:

*,代理商,BusStop,日历,日,目的地,小时,线,分钟,月,移动,起源,第二,停止,街道,旅行,年

关系类型(13)是:

*,CONTAINS,DID_NOT_STOP_AT,ENDS_AT,HAS_DAY,HAS_MONTH,IS_COMPOSED_OF,MOVES_ON,NEXT,NEXT_DAY,RUNS,STARTS_AT,STOPS_AT,SUSPENSION_OF_MOVEMENT

财产钥匙(46)

AgTimezone,AgTimezone,Arrivaltime,ArvDep,BusEvent,BusEventPlace,BusStopID,Departuretime,DestinationID,MoveID,OriginID,StopID,StopsID,agUrl,agencyID,cal_serviceID,date,day,dayid,endtime,hour,hourid,lLongName,lShortName ,lType,latitude,lineID,经度,分钟,minuteid,month,monthid,sName,second,secondid,sequence,service_id,starttime,streetID,streetName,streetNoSpace,streetType,time,tripID,tripId,year,yearid

(2)使用所有实体(即节点和关系)检索并显示单次旅行的所有信息

  MATCH (n:Trip {tripID: '51-3-9'}) RETURN n LIMIT 1

我不确定上面的代码是否会返回所有关系,因为我得到的结果有四个节点。

谢谢!

1 个答案:

答案 0 :(得分:0)

当您尝试在一行(MATCHWITH子句中执行过多功能时,查询有时无法按预期工作... ...不知道原因

试试这个

MATCH (o:Origin),(dt:Destination)
WHERE o.hour = 8
MATCH p=shortestPath((o)-[:NEXT*]-(dt))
return p ORDER BY LENGTH(p) ASC 
LIMIT 1;

我不知道这是否是你的情况,但我认为你想要匹配所指向的NEXT关系,因为路线不能双向工作。 如果是这样,请将您的第二个MATCH更改为

MATCH p=shortestPath((o)-[:NEXT*]->(dt))