讀我想通了,如何從客戶的Node.js運行 MongoDB服務器,上的JavaScript代碼:執行非阻塞EVAL MongoDB中
db.eval("function(x){ return x*10; }", 1, function (err, retval) {
console.log('err: '+err);
console.log('retval: '+retval);
});
而且工作正常。但文檔說db.eval()
發出寫入鎖定,所以沒有別的東西可以讀取或寫入數據庫。我不要那個。
它也說eval
沒有這樣的限制,但我不知道在哪裏可以找到它。從他們談論的方式來看,似乎只有在mongo shell中才可以使用常規的eval
,而在客戶端則不可以。
因此:如何在mongodb服務器上運行這些存儲過程而不阻塞所有內容?
你應該指出的是,使用db.system.js積極勸阻。摘自[文檔](http://docs.mongodb.org/manual/applications/server-side-javascript/#storing-functions-server-side):「**注:**我們不** *如果可能,推薦使用服務器端存儲的功能。「 – Philipp 2013-03-27 20:35:18