如何解决Neo4j在后续查询中进行变量
我正在尝试通过2个后续查询来保留变量。似乎WITH只会帮助将变量转移到下一个查询,而在此之前没有任何帮助。有建议吗?
这是我要执行的操作的示例:
人员节点包含有关发布者,作家和编辑者的信息(例如姓名,性别等)
故事节点包含有关故事的数据(例如标题,发布日期等)
IN关系具有以下类别:创建,编辑,发布。
返回编辑过另一个编辑器发布者的故事的编辑器发布者:
假设没有重复的人名
- 查找所有至少编辑过一个故事并且也发表过至少一个故事的人
- 查找这些编辑出版商在1中发布的故事列表
- 在所有2个故事的编辑中,这些编辑的子列表也在1个中返回
MATCH (EditorPublisher:Person)-[:IN{category: "published"}]->(:Story) // 1
WHERE (EditorPublisher:Person)-[:IN{category: "edited"}]->(:Story)
WITH COLLECT(EditorPublisher.name) as EditorPublisher_list
MATCH (EditorPublisher_stories:Story)<-[:IN{category: "published"}]-(publisher:Person) // 2
WHERE publisher.name in EditorPublisher_list
WITH EditorPublisher_list // throws error EditorPublisher_list variable not found
WITH COLLECT(EditorPublisher_stories.title) as EditorPublisher_stories_list
MATCH (epe:Person)-[contribution:PLAYED]-(eps:Movie) // 3
WHERE epe.name in EditorPublisher_list
AND eps IN EditorPublisher_stories_list
RETURN epe.name
解决方法
NVM我可以使用它。如果我不重命名,With会保留变量。
我只需要处理return.nodes,然后在后续查询中调用return.nodes即可,而不是在[return.nodes.list]中使用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。