2016-07-04 73 views
0

我想創建新的節點和基於屬性更新節點,如果節點已經存在,我的查詢正在創建節點,但更新節點屬性時節點已經存在,下面是我的暗號查詢neo4j創建節點的屬性或設置節點屬性,如果節點存在

MERGE (n:CourseCluster {mysql_coursecluster_id:"2"}) 
ON CREATE SET n.Name = "pavan", n.Comments = "pavan reddy" return n 
+0

不太明白你想在這裏做什麼。也許增加一個例子。 –

+0

上面的查詢正在創建節點,但它不更新節點已存在時的屬性 –

回答

1

有兩個子句可以用MERGE使用,分別爲:

  • ON CREATE:創建節點時執行操作
  • ON MATCH:執行操作時,該節點在您的情況已經存在

MERGE (n:CourseCluster {mysql_coursecluster_id:"2"}) 
ON CREATE SET n.Name = "pavan", n.Comments = "pavan reddy" 
ON MATCH SET n.Name = "pavan", n.Comments = "other comment" 

如果沒有被ON CREATEON MATCH之間設置屬性的差異,你可以忽略它們:

MERGE (n:CourseCluster {mysql_coursecluster_id:"2"}) 
SET n.xx = ... 
+0

它的工作原理..謝謝.. @ Christophe Willemsen –