2016-12-16 119 views
1

我使用pyArango使用功能ArangoDB-重複邊緣

Graph.createEdge() 

我現在面臨的問題是,ArangoDB允許創建具有相同_TO,_from對重複的邊緣以創建兩個文件之間的邊緣。如何避免這種情況ArangoDB

回答

2

一個簡單的解決方案是使用fetchFirstExample()在邊緣上收集插入之前檢查:

try : 
    edge = myEdgesCollection.fetchFirstExample({"_to": doc2._id, "_from": doc1._id})[0] 
except : 
    edge = myGraph("myEdgesCollection", doc1, doc2, {}) 
0

這是通過一些約束作用是不可能的,

您可以在插入級別避免:

當創建一個邊緣,使用下一個查詢:

UPSERT {_from : @from, _to : @to} 
INSERT {_from : @from, _to : @to, label : "knows"} 
UPDATE {} IN @@edgeCollection 

如果有匹配它不會創建它(但注意,它會更新所以離開的更新對象空)