0

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

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

错误消息是非特定的:

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

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

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

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

4

1 回答 1

0

对不起,目前没有聪明的方法来实现这一点。今天处理此问题的唯一方法是对FILTER您尝试插入的值进行后续选择:

FOR doc IN collection
  FILTER doc.firstindexed = 'firstvalue'
      OR doc.secondindexed = 'secondvalue'
    RETURN doc
于 2017-03-31T10:05:46.483 回答