首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在边缘集合中插入重复文档

在边缘集合中插入重复文档
EN

Stack Overflow用户
提问于 2018-08-18 21:21:57
回答 2查看 220关注 0票数 9

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

代码语言:javascript
复制
db.collection("starks").save({ 
    _from: "Starks/Lyanna-Stark", 
    _to: "Starks/Ned-Stark", 
    type: "married" 
});

这会将Starks/Lyanna-StarkStarks/Ned-Stark之间的关系married插入到数据库中。但是当我运行这个查询两次时,它用不同的关系键插入了两次。我希望避免这种情况,因为单个关系应该只有一个条目。我如何才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-18 21:41:06

只需为您创建的所有关系创建一个唯一的索引。例如,如果关系集合的名称为relations,则运行此查询以使"_from""_to""type"的组合唯一

代码语言:javascript
复制
db.relations.ensureIndex({ 
    type: "hash", 
    fields: [ "_from", "_to", "type" ], 
    unique: true 
});

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

票数 8
EN

Stack Overflow用户

发布于 2018-09-29 23:30:26

您面临这个问题的原因很简单,Arango每次保存对象时都会创建一个新的ID。边缘记录的唯一性是通过"_key“键实现的。

为此,您可以自己提供"_key“键,也可以更改代码的逻辑以检查记录是否已经存在于数据库中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51909100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档