2017-03-06 53 views
0

我是Neo4j的新手。我正在查询公共交通网络的图形数据库。我已经将数据导入到我的数据库中,但我在查询数据库时遇到了一些问题。问题查询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):

*,代理,巴士站就,日历,一天,目的地,小时,线,分钟,月,移动,产地,其次,停止,街道,旅行,

关系类型(13)为:

*,含有DID_NOT_STOP_AT,ENDS_AT,HAS_DAY,HAS_MONTH,IS_COMPOSED_OF,MOVES_ON,NEXT,NEXT_DAY,运行时,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,dayid,dayid,endtime,hour,hourid,lLongName,lShortName ,lType,纬度,lineID,经度,分钟,小时,月,monthid,sName,秒,secondid,sequence,service_id,starttime,streetID,streetName,streetNoSpace,streetType,时间,tripID,tripId,year,yearid

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

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

我不知道,如果上面的代码将返回所有的关系,因为我得到的结果有四个节点。

谢谢!

回答

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)) 
+0

感谢@托马日Bratanič!我已经尝试了你建议的代码,并改变了第二次比赛,但结果是“(没有变化,没有记录)” –

+0

你可以尝试没有的地方o.hour = 8 –

+0

或者你是否将小时保存为字符串?所以它看起来像'WHERE o.hour =“8” –