Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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不';如果其中一个为空,则不要查找多个起点_Neo4j_Cypher - Fatal编程技术网

Neo4j不';如果其中一个为空,则不要查找多个起点

Neo4j不';如果其中一个为空,则不要查找多个起点,neo4j,cypher,Neo4j,Cypher,在以下场景中,节点“x”不存在 start x=node:node_auto_index(key="x"), y=node(*) return count(x), count(y) 似乎如果找不到任何起点,就不会返回任何结果 有什么建议可以解决这个问题吗?这就像说下面的话(在SQL中)——如果表X为空,您预计会发生什么 select count(x), count(y) from x, y 我不确定您到底想查询什么,但如果x有可能返回而没有结果,您可能需要一次获取一个计数: start x

在以下场景中,节点“x”不存在

start x=node:node_auto_index(key="x"), y=node(*)
return count(x), count(y)
似乎如果找不到任何起点,就不会返回任何结果


有什么建议可以解决这个问题吗?

这就像说下面的话(在SQL中)——如果表X为空,您预计会发生什么

select count(x), count(y) 
from x, y
我不确定您到底想查询什么,但如果x有可能返回而没有结果,您可能需要一次获取一个计数:

start x=node:node_auto_index(key="x")
with count(x) as cntx
start y=node(*)
return cntx, count(y) as cnty

多亏了Wes,我想出了如何使用旧的Cypher语法(2.0之前)进行“条件添加”:

START x=node:node\u auto\u index(key=“x”)
计数(x)为存在
开始y=节点:节点自动索引(key=“y”)
存在的位置=0

create(n{key:“y”})我试图用尽可能少的语句捆绑一些东西。这里有一个更大的片段:start x=node:some_index(key=“x”),y=node:some_index(key=“y”),计数(x)为x,y,其中x=0创建x,y-[:rome\u r]->xYou可能还想签出create UNIQUE。有些案件处理得相当好
START y=node:node_auto_index(key=“y”)创建唯一的y-[:rel]->(n{key:“x”})返回n,y
Yup。但它总是沿着路径创建第二个节点。这不是我们想要的。我不想要一个新的“y”节点,每次我叫它:)是的。运行您的示例,然后切换“NEW1”或其他什么,您将获得第二个“TEST”节点;)是的,但这不是唯一的。。。如果你运行两次NEW1,你只会在第一次得到一个新的节点。我想如果你不知道这个关系会是什么,CREATE UNIQUE也帮不了你。但有时确实如此。
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