我想出了如何从 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 shell 中可用,而不是从客户端。
那么:如何在不阻塞所有内容的情况下在 mongodb 服务器上运行这些存储过程?