node.js クライアントから、MongoDB サーバーで JavaScript コードを実行する方法を見つけました。
db.eval("function(x){ return x*10; }", 1, function (err, retval) {
console.log('err: '+err);
console.log('retval: '+retval);
});
そして、それはうまくいきます。しかし、ドキュメントによるとdb.eval()
、それは書き込みロックを発行するため、データベースに対して他に何も読み書きできません。私はそれを望んでいません。
またeval
、そのような制限はないと言っていますが、どこにあるのかわかりません。彼らが話している方法から、正規eval
はmongoシェルでのみ利用可能であり、クライアント側からは利用できないようです。
では、すべてをブロックすることなく、mongodb サーバーでこれらのストアド プロシージャを実行するにはどうすればよいでしょうか。