mysql - 查询 Neo4j 数据库中公交车出发时间的问题

标签 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)是:

*、代理机构、公交车站、日历、日、目的地、小时、线路、分钟、月份、移动、出发地、第二、站点、街道、行程、年份

关系类型 (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

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

谢谢!

最佳答案

有时,当您尝试在一行中执行太多功能(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))

关于mysql - 查询 Neo4j 数据库中公交车出发时间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626300/

相关文章:

sql - 复合主键和链表规则

database - MongoDB如何按这样的多个字段排序?

python - matplotlib 中清晰易读的灰度线图?

algorithm - 是否存在最小深度、生成树算法?

mySQL 效率问题 - 如何找到规范化的正确平衡...?

mysql - 如何从 vb.net 中的字符串中删除所有无法进入 mysql 的奇怪字符

database - 如何从容器内部访问主机上运行的数据库?

algorithm - 在矩阵中寻找最大的连通树

mysql - Django ForeignKey(用户),自动完成

mysql - 如何在nodejs中执行sequelize批量插入