首先我为我的本地mogodb服务器尝试了db.eval()。它运行正常。我使用this example
然后我用MongoLab尝试了同样的事情。但是我收到了这条错误消息。
错误说无权执行命令。您能解释为什么会出现此错误消息。谢谢
答案 0 :(得分:0)
Eval是一种强大的,危险的,已弃用的行为,但毫升不会给予它。
在本地mongo db中,您应该创建一个角色:
use admin
db.createRole(
{
role: "dangerEval",
privileges : [
{ resource: {anyResource: true }, actions : ["anyAction"] },
// or this for grant anyAction only on a single db:
{ resource: {db: "myDb", collection: "" }, actions: [ "anyAction" ] }
],
roles: []
}
)
然后您可以将此角色分配给用户:
db.createUser({
user: "temporaneyEvalUser",
pwd: "psw",
roles: [ { role: "dangerEval", db: "myDb" } ]
});
因此,您必须选择其他方式来存档目标或更改mongo安装。