2016-08-01 82 views
0

我正在運行neo4j-community-3.0.0-M05。Neo4j中的MERGE子句Cypher查詢不起作用

我正在嘗試Neo4J Cypher查詢語言的MERGE子句。其解釋是given如下

它就像的MATCHCREATE的組合,其創建它之前首先檢查數據的存在。使用MERGE您可以定義要找到或創建的模式。通常,與MATCH一樣,您只需要包含要在覈心模式中查找的關鍵屬性。 MERGE允許您提供您想要設置的其他屬性ON CREATE

我已經有以下節點:

(:Movie{title:"Forrest Gump", released:1994}) 

,現在我想添加一個虛擬財產addedOn與虛擬值20160108它只是嘗試MERGE條款:

MERGE (a:Movie{title:"Forrest Gump"}) 
ON CREATE SET a.addedOn= "20160108" 
RETURN a; 

然而這似乎不起作用:

enter image description here

這是爲什麼呢?

回答

1

你所看到的恰恰是預期的行爲。

由於MERGE找到您預先存在的Forrest Gump,所以使用此節點。因爲你沒有創建任何東西,ON CREATE處理程序不會觸發。

如果你已經有一個ON MATCH處理程序,那麼這個人將會被解僱,因爲MERGE的匹配成功了。

+0

很好......剛剛添加了'ON MATCH':'MERGE(a:Movie {title:「Forrest Gump」})MATCH SET a.addedOn =「20160108」ON CREATE SET a.addedOn =「20160108」RETURN一個;'。沒有意識到這一點。 – Mahesha999