如何提供Neo4j的暗号多个查询?(How do I provide multiple querie

2019-09-17 17:42发布

我想在第二个查询使用结果从第一个查询。 我不知道如何在Cypher支架做到这一点?

当前的代码,

START user1=node:USER_INDEX(USER_INDEX = "userA") 
MATCH user1-[r1:ACCESSED]->docid1<-[r2:ACCESSED]-user2, user2-[r3:ACCESSED]->docid2 
WHERE r2.Topic=r3.Topic 
RETURN distinct docid2.Label;

我想有不同的条件在WHERE子句中检查同一docid2组节点和积累的结果,并通过基于日期字段执行顺序。 我不能够提供多重匹配和相同的事务中返回。 这时候,我想有两个不同的暗号脚本,并在第三个查询将它们结合起来。 这是可能的暗号? 或有任何选项来编写自定义的功能和调用它们? 我们是否已经存储了暗号一样的脚本小鬼存储脚本?

Answer 1:

正如迈克尔在评论中提到,您可以使用“与”语句来流造成进一步进入报表。 不幸的是,你不能将“where”子句后,开始另一个说法。 多return语句将是一种不合逻辑的,但你可以在一个单一的查询如做多件事情:

START x=node:node_auto_index(key="x")
with count(x) as exists
start y=node:node_auto_index(key="y")
where exists = 0
create (n {key:"y"})<-[:rel]-y
return n, y

如果“X”节点存在这将检查,如果没有,继续创建并添加几个参数。

如果你希望做的结果集上更复杂的事情,你最好的选择是要么批量请求或Java API ...



文章来源: How do I provide multiple queries in Neo4j Cypher?
标签: neo4j cypher