我正在使用arangodb的节点驱动程序版本6来插入两个顶点之间的关系,如下所示。
db.collection("starks").save({
_from: "Starks/Lyanna-Stark",
_to: "Starks/Ned-Stark",
type: "married"
});这会将Starks/Lyanna-Stark和Starks/Ned-Stark之间的关系married插入到数据库中。但是当我运行这个查询两次时,它用不同的关系键插入了两次。我希望避免这种情况,因为单个关系应该只有一个条目。我如何才能做到这一点?
发布于 2018-08-18 21:41:06
只需为您创建的所有关系创建一个唯一的索引。例如,如果关系集合的名称为relations,则运行此查询以使"_from"、"_to"、"type"的组合唯一
db.relations.ensureIndex({
type: "hash",
fields: [ "_from", "_to", "type" ],
unique: true
});发布于 2018-09-29 23:30:26
您面临这个问题的原因很简单,Arango每次保存对象时都会创建一个新的ID。边缘记录的唯一性是通过"_key“键实现的。
为此,您可以自己提供"_key“键,也可以更改代码的逻辑以检查记录是否已经存在于数据库中。
https://stackoverflow.com/questions/51909100
复制相似问题