4

ArangoDB で ACID トランザクションを実行したいと考えています。そして、トランザクション コード (nodejs-code) を ArangoDB サーバーに送信して実行し、失敗した場合はコミットまたはロールバックしたいと考えています。しかし、ArangoDB サーバー側では、NPM Decimal モジュールまたは呼び出されたパッケージをインストールする必要があります。

それをインストールするにはどうすればよいですか? また、トランザクション コードからその特定のモジュールにアクセスするにはどうすればよいですか?

ご挨拶と感謝。

4

2 に答える 2

3

decimal モジュールを適切な場所に配置し、arangod 内で適切に要求できるようになると、次のようにトランザクション内で使用できるようになります。

db._executeTransaction({ 
  collections: { }, 
  action: function (params) { 
    var Decimal = require("decimal"); 
    return Decimal(params.foo).add(params.bar).toNumber(); 
  }, 
  params: { 
    foo: '1.1', 
    bar: '2.2' 
  } 
});

トランザクションがコレクションにアクセスする必要がある場合、明らかに「コレクション」属性でそれらの名前を指定する必要があります。

db._executeTransaction({ 
  collections: { 
    write: [ "test" ]
  }, 
  action: function (params) { 
    var Decimal = require("decimal");
    var collection = require("org/arangodb").db.test;
    var amount = Decimal(params.foo).add(params.bar).toNumber(); 

    return collection.save({ _key: params.key, amount: amount }); 
  }, 
  params: { 
    key: "mykey",
    foo: '1.1', 
    bar: '2.2' 
  } 
});
于 2014-05-28T22:10:43.247 に答える