我在ArangoDB中有一个文档集合,它有多个唯一索引。插入新文档时,插入可能因任何唯一索引而失败。有没有办法轻松找出文档中的哪个字段导致插入失败?
例如,获取存储用户数据的集合。 "用户名"上的唯一索引和"电子邮件" fields表示如果其中任何一个字段重复,插入可能会失败。
错误消息是非特定的:
{
error: true,
errorMessage: 'unique constraint violated (while executing)',
code: 409,
errorNum: 1210
}
长期以来,将分别输入/更新这些唯一字段,以确定哪个字段违反了唯一约束。或者尝试检索与我们的输入值匹配的文档,以确定在尝试插入之前是否存在冲突。我只是觉得必须有一种更简单的方法。
有没有办法返回字段名称和错误?或者我是从完全错误的角度来解决问题的?
非常感谢任何想法或建议。感谢。
答案 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