2015-06-09 47 views
2

如果我有一個用於展開參數的密碼查詢,則查詢的該部分之後的所有內容都稱爲展開的x次。我想找出一種方法來結束放鬆並繼續其他事情。在Cypher查詢中結束UNWIND語句

MATCH (thing:Thing) 
UNWIND { names } AS name 
CREATE thing-[:HAS_NAME]-(n:Name {name: name}) 
//done with the unwind 
WITH (thing) 
CREATE thing[:HAS_AGE]-(a:Age {age: 20}) 

在上面的例子中,由於展開,我將最終得到兩件事 - [:HAS_AGE] - >()關係。我是否必須將其分解爲單獨的語句?

回答

2

展開後,您有兩排。如果您在繼續之前重新摺疊thing,那麼您將再次購買一個。

MATCH (thing:Thing) 
UNWIND { names } AS name 
CREATE thing-[:HAS_NAME]-(n:Name {name: name}) 
//done with the unwind 
WITH distinct thing 
CREATE thing[:HAS_AGE]-(a:Age {age: 20}) 
+0

太棒了!所以,如果我需要使用多個WITH項目,我可以說:WITH A,B,不同的C,D,E只是摺疊擴大的事情? –

+0

是的,'WITH'在密碼中是一個令人難以置信的強大聲明。它允許您收集,展開,在您的查詢的子句之間回憶。這種情況下的替代方法可能是在展開語句之前創建年齡關係。 –