我是 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、RUNS、STARTS_AT、STOPS_AT、SUSPENSION_OF_MOVMENT
属性键 (46)
AgTimezone、AgTimezone、到达时间、ArvDep、BusEvent、BusEventPlace、BusStopID、出发时间、DestinationID、MoveID、OriginID、StopID、StopsID、agUrl、agencyID、cal_serviceID、日期、日期、dayid、结束时间、小时、hourid、lLongName、lShortName , lType, 纬度, lineID, 经度, 分钟, 分钟id, 月, 月id, sName, 秒, secondaryid, 序列, service_id, 开始时间, streetID, streetName, streetNoSpace, streetType, 时间, tripID, tripId, 年,yearid
(2) 使用所有实体(即节点和关系)检索并显示单次行程的所有信息
MATCH (n:Trip {tripID: '51-3-9'}) RETURN n LIMIT 1
我不确定上面的代码是否会返回所有关系,因为我得到的结果有四个节点。
谢谢!
最佳答案
有时,当您尝试在一行中执行太多功能(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))
关于mysql - 查询 Neo4j 数据库中公交车出发时间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626300/