2

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

Graph.createEdge()

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

4

2 回答 2

3

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

try :
  edge = myEdgesCollection.fetchFirstExample({"_to": doc2._id, "_from": doc1._id})[0]
except :
  edge = myGraph("myEdgesCollection", doc1, doc2, {})
于 2017-02-18T18:00:32.950 回答
0

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

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

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

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

如果有匹配项,它不会创建它(但请注意,它会更新它,所以将更新对象留空)

于 2016-12-18T15:47:42.550 回答