在以下情況下,節點「x」不存在。如果其中一個爲空,Neo4j不尋找多個起點
start x=node:node_auto_index(key="x"), y=node(*)
return count(x), count(y)
看來,如果找不到任何起點,則不會返回任何結果。
任何建議如何解決此問題?
在以下情況下,節點「x」不存在。如果其中一個爲空,Neo4j不尋找多個起點
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
感謝韋斯,我想通了如何做一個「附加條件」與舊的Cypher語法(預2.0):
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
這裏的關鍵是,你可以不火的另一個「啓動「在」where「條款之後。在檢查條件之前,您需要查詢第二個節點(這對性能不利)。這在2.0中用if-then-else語句彌補......
您可能還想查看CREATE UNIQUE。其中一些情況處理得很好。 'START y = node:node_auto_index(key =「y」)CREATE UNIQUE y - [:rel] - >(n {key:「x」})返回n,y' – 2013-05-14 14:39:02
是的。但它始終創建第二個節點。這不是我們想要的。我不想要一個新的「y」節點,我把它叫做:) – Michael 2013-05-14 15:13:35
不,它不... http://console.neo4j.org/r/wc4ia9 – 2013-05-14 15:21:07
我試圖儘可能少的陳述中包含一些事情。這裏的一個較大的片段: 啓動x =節點:some_index(鍵= 「X」)中,y =節點:some_index(鍵= 「Y」) 與計數(X)爲X,Y 其中x = 0 創建X ,y - [:rome_r] - > x – Michael 2013-05-14 10:41:35