确定在ArangoDB

时间:2017-01-24 04:12:31

标签: arangodb aql arangojs

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

例如,获取存储用户数据的集合。 "用户名"上的唯一索引和"电子邮件" fields表示如果其中任何一个字段重复,插入可能会失败。

错误消息是非特定的:

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

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

有没有办法返回字段名称和错误?或者我是从完全错误的角度来解决问题的?

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

1 个答案:

答案 0 :(得分:0)

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

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