Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables (Neo4j)在后续查询中携带变量_Variables_Neo4j_Pipe_With Statement - Fatal编程技术网

Variables (Neo4j)在后续查询中携带变量

Variables (Neo4j)在后续查询中携带变量,variables,neo4j,pipe,with-statement,Variables,Neo4j,Pipe,With Statement,我试图通过两个后续查询来传递一个变量。看起来WITH只帮助将变量传递到下一个查询,而不是之前的任何查询。建议 这是我正在尝试做的示例: 个人节点包含关于出版商、作者和编辑的信息(例如姓名、性别等)。 故事节点包含关于故事的数据(例如标题、发布日期等) 在关系中有类别:创建、编辑、发布 返回编辑过其他编辑发布者发布的故事的编辑发布者: 假设没有重复的人名 查找至少编辑过一篇文章且至少发表过一篇文章的所有人员 在1中查找这些编辑发布者发布的故事列表 在2中的所有故事编辑器中,返回1中这些编辑器的子列

我试图通过两个后续查询来传递一个变量。看起来WITH只帮助将变量传递到下一个查询,而不是之前的任何查询。建议

这是我正在尝试做的示例:
个人节点包含关于出版商、作者和编辑的信息(例如姓名、性别等)。
故事节点包含关于故事的数据(例如标题、发布日期等)
在关系中有类别:创建、编辑、发布

返回编辑过其他编辑发布者发布的故事的编辑发布者:
假设没有重复的人名

  • 查找至少编辑过一篇文章且至少发表过一篇文章的所有人员
  • 在1中查找这些编辑发布者发布的故事列表
  • 在2中的所有故事编辑器中,返回1中这些编辑器的子列表
  • MATCH(EditorPublisher:Person)-[:在{category:“published”}]>(:Story)//1
    其中(EditorPublisher:Person)-[:在{category:“edited”}]->(:Story)
    使用COLLECT(EditorPublisher.name)作为EditorPublisher\u列表
    
    MATCH(EditorPublisher_stories:Story)NVM我让它工作了。如果我不重命名变量,With将保留这些变量


    我只需要处理return.nodes,并在后续查询中调用return.nodes,而不是在[return.nodes.list]中使用它。

    可能会将结果保存到文件并进行后期处理?1。前两个查询不是完整的查询(它们不会返回任何内容)。2.为什么不能将所有3个查询合并为一个查询?3.如果它们仍然是单独的查询,那么中间结果是否可能会过时,导致前2个查询中的1或2个无法返回准确完整的结果?
    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