2013-03-11 29 views
0

我的Cypher查詢:CREATE UNIQUE創建重複的關係

START reference=node(0) 
CREATE UNIQUE 

    reference 
    -[:REFERENCES]-> 
    (categories {name: 'categories'}) 
    -[:CATEGORY]-> 
    category_user{name : 'user_categorie'}), 

    reference 
    -[:REFERENCES]-> 
    (categories {name: 'categories'}) 
    -[:CATEGORY]-> 
    category_project{name : 'project_categorie'}) 

我遇到的問題是,它創建的參考節點和節點類別,在你期望的只有一間兩個引用關係。

回答

2

它不知道名稱爲「categories」的節點是按名稱唯一的,因此它只是創建整個模式。 你可以這樣做:

START reference=node(0) 
CREATE UNIQUE reference-[:REFERENCES]->(categories {name: 'categories'}) 
CREATE UNIQUE (categories)-[:CATEGORY]->(category_user {name : 'user_categorie'}) 
CREATE UNIQUE (categories)-[:CATEGORY]->(category_project {name : 'project_categorie'}) 
+1

這就是我第一次想到的問題。但是後來發生在我身上,如果是這樣的話,它也應該重新創建類別節點。但它沒有,它只複製了關係,而不是類別節點。無論如何,你的建議是有效的。它也給了我在先前的查詢中創建類別節點的想法,這也起作用。這樣我就可以使用CREATE,我懷疑它比CREATE UNIQUE更快。 – 2013-03-11 14:05:14

+0

是的,因爲它不需要做任何檢查,所以速度更快。 – 2013-03-14 12:36:21