2016-07-12 70 views
0

我想創建一組三個節點組成,每個組有不同的標籤:創建Neo4j的唯一記錄,無論標識標籤

Create (n: label1 {email:"[email protected]"}) 
Create (n: label2 {email:"[email protected]"}) 
Create (n: label3 {email:"[email protected]"}) 

,其中電子郵件是在所有節點唯一的。

Create Constraint On (n:label {email:"[email protected]"}) Assert n.email IS Unique 

只爲每個標籤/電子郵件組合創建唯一性。任何人都可以說是否有辦法讓電子郵件在所有節點上都是唯一的。

校正到約束查詢:

Create Constraint On (n:label) Assert n.email IS Unique 

上面的一個不正確。

回答

2

可具有郵件屬性的所有節點上設置的二級標籤,並設置一個約束:

CREATE (n:label1:WithEmail {email:"[email protected]"}) 

CREATE CONSTRAINT ON (n:WithEmail) ASSERT n.email IS UNIQUE 
+0

Great..I將測試它。我有一個後續問題!是一次運行CREATE CONSTRAINT還是必須爲創建的每個節點運行它? – MichaelE

+0

您只需要設置一次,最好在創建任何節點之前,否則您將無法保證唯一性。 –

+0

因爲我懷疑你的答案只是把球移到路上。如果我使用無標籤或與CREATE查詢中使用的三個不同,我仍然可以創建重複記錄。所以「CREATE(user:label4 {email:」duplicate「})會創建一個重複的節點 – MichaelE