2016-01-24 70 views
4

我是Neo4J的新手,我正在尋找在現有節點和新節點之間創建新關係。Neo4J - 在現有節點上創建關係

我有一個大學節點和人節點。

我正在嘗試將新人員分配到現有的大學。

我想下面的代碼:

MATCH (p:Person {name:'Nick'}), (u:University {title:'Exeter'}) CREATE (p)-[:LIKES]->(u)

所以在上面的代碼:MATCH (p:Person {name:'Nick'})是新用戶

(u:University {title:'Exeter'})是等植物學大學。

但它回來(no changes, no rows)

我甚至試過沒有MATCH部分查詢,但沒有運氣無論是。

我看過幾個類似的答案,但他們似乎也沒有工作。

任何幫助將非常感激。謝謝。

回答

7

之前匹配創建一個新的,如評論中所建議的!

MATCH(u:University {title:'Exeter'}) 
CREATE(p:Person {name:'Nick'}) 
CREATE(p)-[w:LIKES]->(u) 
return w 
+2

用了沒有任何事情可做,你的查詢是正確的,但它是他應該使用CREATE而不是匹配第一個創建的用戶節點更相關,開關查詢你的CREATE和MATCH,你不需要WITH,+1 –

0

這是因爲當你匹配你的數據庫中搜索節點。數據庫說,我不能讓真正的「當節點不存在」。

幸運的是,有一種叫做合併的東西,就像是一個匹配+創建,當他沒有找到他創建它的整個路徑。 它應該像合併 '節點1' merge'node2' 創建(節點)[] - >(節點2)

1

你也可以使用一個MERGE語句爲每docs

MERGE或匹配現有節點並綁定它們,或者創建新數據並綁定它們。它就像是MATCH和CREATE的組合,它還允許您指定在數據匹配或創建時發生的情況。

你會做這樣

MERGE (p:Person {name:'Nick'})-[:LIKES]->(u:University {title:'Exeter'}) 
相關問題