在边集合中插入重复的文档

Dip*_*pti 9 arangodb arangojs

我正在使用arangodb的节点驱动程序版本6来插入两个顶点之间的关系,如下所示.

db.collection("starks").save({ 
    _from: "Starks/Lyanna-Stark", 
    _to: "Starks/Ned-Stark", 
    type: "married" 
});
Run Code Online (Sandbox Code Playgroud)

这将插入关系married之间Starks/Lyanna-StarkStarks/Ned-Stark到数据库中.但是当我运行这个查询两次时,它会使用不同的关键键插入它两次.我想避免这种情况,因为单个关系只应存在一个条目.我怎样才能做到这一点?

mol*_*ule 8

只需为您正在创建的所有关系创建唯一索引.例如,如果你的关系集合的名称是relations,然后运行此查询,使组合"_from","_to","type"独特

db.relations.ensureIndex({ 
    type: "hash", 
    fields: [ "_from", "_to", "type" ], 
    unique: true 
});
Run Code Online (Sandbox Code Playgroud)

以下是参考链接https://docs.arangodb.com/3.0/Manual/Indexing/Hash.html#ensure-uniqueness-of-relations-in-edge-collections