ArangoDB-重复边
ArangoDB- duplicate edges
我正在使用 pyArango 使用函数在两个文档之间创建边缘
Graph.createEdge()
我面临的问题是 ArangoDB 允许使用相同的 _to、_from 对创建重复边。如何在 ArangoDB 中避免这种情况
通过某种约束作用这是不可能的,
您可以在插入级别避免它:
创建边时,使用下一个查询:
UPSERT {_from : @from, _to : @to}
INSERT {_from : @from, _to : @to, label : "knows"}
UPDATE {} IN @@edgeCollection
如果有匹配,它不会创建它(但请注意,它会更新它所以将更新对象留空)
一个简单的解决方案是在插入之前使用 fetchFirstExample() 在边缘集合上进行检查:
try :
edge = myEdgesCollection.fetchFirstExample({"_to": doc2._id, "_from": doc1._id})[0]
except :
edge = myGraph("myEdgesCollection", doc1, doc2, {})
我正在使用 pyArango 使用函数在两个文档之间创建边缘
Graph.createEdge()
我面临的问题是 ArangoDB 允许使用相同的 _to、_from 对创建重复边。如何在 ArangoDB 中避免这种情况
通过某种约束作用这是不可能的,
您可以在插入级别避免它:
创建边时,使用下一个查询:
UPSERT {_from : @from, _to : @to}
INSERT {_from : @from, _to : @to, label : "knows"}
UPDATE {} IN @@edgeCollection
如果有匹配,它不会创建它(但请注意,它会更新它所以将更新对象留空)
一个简单的解决方案是在插入之前使用 fetchFirstExample() 在边缘集合上进行检查:
try :
edge = myEdgesCollection.fetchFirstExample({"_to": doc2._id, "_from": doc1._id})[0]
except :
edge = myGraph("myEdgesCollection", doc1, doc2, {})