【问题标题】:Determining which unique constraint caused INSERT failure in ArangoDB确定哪个唯一约束导致 ArangoDB 中的 INSERT 失败
【发布时间】:2017-01-24 04:12:31
【问题描述】:

我在 ArangoDB 中有一个具有多个唯一索引的文档集合。插入新文档时,插入可能会因为任何唯一索引而失败。有没有办法轻松找出文档中的哪些字段导致插入失败?

例如,以一个存储用户数据的集合为例。 “用户名”和“电子邮件”字段的唯一索引意味着如果其中任何一个字段重复,插入可能会失败。

错误消息是非特定的:

{ 
    error: true,
    errorMessage: 'unique constraint violated (while executing)',
    code: 409,
    errorNum: 1210
}

很长的路要走是分别输入/更新这些唯一字段,以确定哪个字段违反了唯一约束。或者尝试检索与我们的输入值匹配的文档,以确定在尝试插入之前是否会发生冲突。我只是感觉一定有更简单的方法。

有没有办法将字段名称与错误一起返回?还是我从完全错误的角度解决问题?

非常感谢任何想法或建议。谢谢。

【问题讨论】:

    标签: arangodb aql arangojs


    【解决方案1】:

    对不起,there is currently no smart way to achieve this。 今天处理这个问题的唯一方法是使用FILTER 对您尝试插入的值进行后续选择:

    FOR doc IN collection
      FILTER doc.firstindexed = 'firstvalue'
          OR doc.secondindexed = 'secondvalue'
        RETURN doc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 2019-04-28
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多