如何解决多条最短路径中的最短路径
我有2组节点,人和电影,我想找到离每个人最近的电影。我通过这种方式找到了最近的电影的最短路径:
match path = shortestPath( (p: {id: 1)-[*]-(:MOVIE))
with path order by length(path)
return collect(path)[0]
现在,我想找到离每个人最近的电影(对于每个人,最短路径 这个人和所有电影之间的最短路径)但是,我没有找到让每个人分开走最短路径的方法。
我希望有这样的东西:
match (p:PERSON)
with p
match path = shortestPath( (person)-[*]-(:MOVIE) )
with person.id as p_id,path ORDER BY length(path)
return collect(path)[0]
但是,查询按长度排序整个响应。我没有找到单独对每个 person_id 的路径集合进行排序的方法
解决方法
你只需要在return语句中添加person id,这样collect就会按person id聚合
match (p:PERSON)
with p
match path = shortestPath( (person)-[*]-(:MOVIE) )
with person.id as p_id,path ORDER BY length(path)
return p_id,collect(path)[0]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。