Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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
neo4j javascript API:排序并收集匹配项_Neo4j_Cypher_Neo4j Apoc - Fatal编程技术网

neo4j javascript API:排序并收集匹配项

neo4j javascript API:排序并收集匹配项,neo4j,cypher,neo4j-apoc,Neo4j,Cypher,Neo4j Apoc,我必须基于查询的并集运行查询,并且必须应用收集和排序结果 (我在neo4j 3.5上) 因此,我的起始伪代码如下所示: var session = driver.session(); return session .run("QUERY_1 return value as COL1, value2 as COL2 UNION QUERY_2 return value as COL1, value2 as COL",{paramslit}) .then(result => {

我必须基于查询的并集运行查询,并且必须应用收集和排序结果 (我在neo4j 3.5上)

因此,我的起始伪代码如下所示:

var session = driver.session();
  return session
.run("QUERY_1 return value as COL1, value2 as COL2 UNION QUERY_2 return value as COL1, value2 as COL",{paramslit}) 
.then(result => {
      session.close();
      return result.records.map(record => { return new RESULT(...)}
});
    })
    .catch(error => {
      session.close();
      throw error;
    });
我的问题是,我需要将col2的结果作为一个集合来获取,因此我需要在cypher查询中对其应用collect;但是应该在联合之后应用collect,因为QUERY_1和QUERY_2都可以返回给定col1的值

查询1和查询2已经相当复杂了,我认为没有一种方法可以通过一个没有联合的查询来获得这些查询的输出

对于仅使用密码的代码,我知道存在apoc.cypher.run 但是我无法在会话中使其按预期工作。在neo4j 4.0中运行代码

,在Cypher中添加了一个新功能,它支持

您可以使用该功能执行您想要的操作。以下是新的密码伪代码:

CALL {
  QUERY_1 return value as COL1, value2 as COL2
  UNION
  QUERY_2 return value as COL1, value2 as COL2
}
RETURN COL1, COLLECT(COL2) as SET_OF_COL2

您要排序什么?另外,您说要将COL2作为“set”返回;你是说有不同元素的列表吗?此外,您是想聚合COL1,还是想为每个不同的COL1值获取COL2值集,还是想做其他事情?如果这是一个没有联合的单返回查询,我会使用COL1,COL2 ORDER BY COL1 RETURN COL1,COL2作为colu COL2Hi的集合。他意识到了这一点,并希望在3.5版中找到一种实现这一点的方法。我放弃了,迁移到4?0看看。