我有兩個節點,其間具有相同屬性的相同邊緣一遍又一遍地創建。我怎樣才能避免這種情況?如果邊緣具有不同的屬性,那麼它的OK和它需要保留,但是如果屬性相同,則只應該有一條邊。具有相同屬性的重複邊緣neo4j
編輯:我正在使用rails,我想通過應用程序來執行此操作,而不是使用Cypher查詢。
編輯:爲關聯共享一些代碼:
dis = Disease.where(disease: params[:disease]).first
fac = Factor.where(factor: params[:factor])
dis.factors.create(fac, prop: "p1")
所以,我要的是,如果我輸入相同的疾病和因素,它不能複製的邊緣(它目前正在做)爲被設定屬性也一樣。但是,如果將來這個p1
更改爲p2
,那麼應該添加邊緣。
請參閱後Neo4j inconsistent behaviour of model classes模型類(疾病和因素)。
但是在這種情況下,對於不同的屬性,我也無法制作多個邊,對吧? – vish4071
或者它似乎'獨特:所有'就是我想要的?! – vish4071
如果您使用'unique:true' /'unique :::none'(兩者相同),則只會創建該關係類型的一個關係。如果指定'unique::all',它將始終創建一個新的關係,除非所有的屬性都相同。 ':on'選項可以讓你更具體地指定屬性 –