簡體   English   中英

確定哪個唯一約束導致ArangoDB中的INSERT錯誤

[英]Determining which unique constraint caused INSERT failure in ArangoDB

我在ArangoDB中有一個文檔集合,該文檔集合具有多個唯一索引。 插入新文檔時,由於任何唯一索引,插入可能會失敗。 有沒有一種方法可以輕松找出文檔中的哪個字段導致插入失敗?

例如,采取一個存儲用戶數據的集合。 “用戶名”和“電子郵件”字段上的唯一索引意味着,如果這些字段中的任何一個重復,則插入可能會失敗。

錯誤消息是非特定的:

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

很長的路要走,就是分別輸入/更新這些唯一字段,以便確定哪個字段違反了唯一約束。 或者嘗試檢索與我們的輸入值匹配的文檔,以在嘗試插入之前確定是否會發生沖突。 我只是覺得必須有一種更簡單的方法。

有沒有一種方法可以返回字段名稱和錯誤? 還是我從完全錯誤的角度來解決問題?

真的很感謝任何想法或建議。 謝謝。

抱歉, 目前沒有實現此目標的明智方法 今天處理此問題的唯一方法是使用FILTER對您嘗試插入的值進行后續選擇:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM