2017-02-21 156 views
0

我正在尋找滿足特定模式的查詢,然後用第一個查詢從其中一個節點開始的另一個查詢來擴充它。我相信我能做到這一點與這樣的查詢:密碼可選匹配和限制

比賽(:P) - (:X) 可選匹配(:P) - - [關係] [:relationship2] - (:X2)

現在假設我在最後加上了限制(例如限制200)。 在使用新節點p移動到新的主查詢之前,返回的行是否會耗盡所有滿足的可選匹配項?或者,查詢是否可能只是任意返回可選匹配的子集?

回答

0

1)您的Cypher模式語法看起來很糟糕。對於節點(在括號內),可選標識符首先出現,每個可選標籤出現在冒號後面。對於關係(在方括號內),可選標識符首先出現,類型出現在冒號後面。我懷疑你的榜樣應該看起來是這樣的(這樣p標識符可用於扳平2種模式一起):

MATCH (p)-[relationship:FOO]-(x) 
OPTIONAL MATCH (p)-[relationship2:BAR]-(x2) 
... 

2)的Cypher文檔沒有定義的水平的LIMIT行爲你所問的細節,所以你應該製作你的Cypher,以得到一個結果,儘可能接近你想要的。例如,如果你想返回最多200個x2值一pMATCH模式中,你可以使用這樣的事情:

MATCH (p)-[relationship:FOO]-(x) 
WITH p LIMIT 1 
OPTIONAL MATCH (p)-[relationship2:BAR]-(x2) 
RETURN x2 LIMIT 200 
+0

謝謝 - 我被草率與CYPHER查詢,但你點是正確的。我喜歡你放在那裏的解決方案。我想知道限制的行爲是否已定義,但沒有記錄。 –