2017-03-06 43 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」 –