2013-05-13 63 views

回答

3

這就像是在說下面的內容(在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 
+0

我試圖儘可能少的陳述中包含一些事情。這裏的一個較大的片段: 啓動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

0

感謝韋斯,我想通了如何做一個「附加條件」與舊的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語句彌補......

+0

您可能還想查看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

+0

是的。但它始終創建第二個節點。這不是我們想要的。我不想要一個新的「y」節點,我把它叫做:) – Michael 2013-05-14 15:13:35

+0

不,它不... http://console.neo4j.org/r/wc4ia9 – 2013-05-14 15:21:07

相關問題