Arangodb-重复边缘



我正在使用pyarango使用函数在两个文档之间创建边缘

Graph.createEdge()

我面临的问题是,Arangodb允许使用相同的_to,_从配对创建重复边缘。如何避免Arangodb

中的这种情况

一个简单的解决方案是在边缘集合上使用 fetchfirstexample()插入前检查:

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

这是通过某些约束角色不可能的,

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

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

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

如果有匹配,它将不会创建它(,但是请注意,它将更新,因此将更新对象留为空)

最新更新