ArangoDB-重复边缘

时间:2016-12-16 11:55:17

标签: arangodb pyarango

我正在使用pyArango使用函数

在两个文档之间创建边
Graph.createEdge()

我面临的问题是ArangoDB允许使用相同的_to,_from对创建重复的边。如何在ArangoDB中避免这种情况

2 个答案:

答案 0 :(得分:3)

一个简单的解决方案是在插入前使用edge集合上的 fetchFirstExample()进行检查:

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

答案 1 :(得分:0)

通过一些约束角色

是不可能的

您可以在插入级别避免使用它:

创建边缘时,请使用下一个查询:

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

如果匹配则无法创建(但请注意,它会更新,因此请将更新对象留空)