我是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
我不确定上面的代码是否会返回所有关系,因为我得到的结果有四个节点。
谢谢!
答案 0 :(得分:0)
当您尝试在一行(MATCH
,WITH
子句中执行过多功能时,查询有时无法按预期工作... ...不知道原因
试试这个
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))