2017-01-24 12 views
0

ArangoDBに複数の一意のインデックスを持つドキュメントコレクションがあります。新しい文書を挿入するとき、一意索引のため挿入が失敗する可能性があります。ドキュメント内のどのフィールドで挿入が失敗したのかを簡単に把握する方法はありますか?ArangoDBでINSERTに失敗したユニーク制約の特定

たとえば、ユーザーデータを格納するコレクションを作成します。 「ユーザ名」フィールドと「電子メール」フィールドの一意のインデックスは、いずれかのフィールドが重複すると挿入が失敗する可能性があることを意味します。

エラーメッセージは、非特異的である:

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

長い道のりが周りの一意性制約に違反しているフィールド特定のために知って個別にこれらのユニークなフィールドを更新/入力になります。または、挿入しようとする前に衝突があるかどうかを確認するために、入力値と一致するドキュメントを検索してみてください。私は単純な方法が必要であると感じています。

エラーとともにフィールド名を返す方法はありますか?あるいは、私は完全に間違った角度から問題に近づいていますか?

本当にご意見やご提案をいただければ幸いです。ありがとう。

答えて

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 
関連する問題