读我想通了,如何从客户的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