おそらくその時点では存在しない特定のドキュメントを探しているときに、トランザクション中にArangoDBが例外をスローするのを防ぐ方法は?
Nodejs はトランザクションを 1 つのブロックで ArangoDb に送信し、そこで処理されます。それは最高です。すべての数学をサーバーにアンロードしたい。
トランザクション中に、特定のコレクションを見て、ドキュメントが存在するかどうかを確認し、ドキュメントが見つかった場合はフィールド「バランス」を取得しますが、ドキュメントまたはそのフィールドが見つからない場合は、例外であり、進行中のトランザクションを停止したくありません。それどころか、トランザクションを続行したいので、変数 oldBalance に「0」の文字列を割り当てます。
(参考までに: コレクションの書き込みロックがあります: nodeJS 側で指定された「user」)。ここでは、ArangoDB に送信されたトランザクション コードの一部を示します。
var db = require('internal').db;
// 1.) find specific document
var accountdoc = db.user.document('Johnny04'); // find doc by _key
その特定の _key を持つドキュメントが見つからない場合、これは例外をスローします。その時点で、ユーザーはおそらくコレクションにエントリを持っていません。その場合、彼の残高は文字列 '0' であると仮定します。残念ながら、すでに例外がスローされています。次のように進めたいと思っています。
//2.) calculate newBalance = oldBalance + additional
if (accountdoc.error==true){ // document not found etc...
var oldBalance='0';
var documentExists = false;
} else {
var oldBalance=accountdoc.balance;
var documentExists = true;
var documentExistsID = accountdoc._id;
}