1

我正在尝试使用各种db.eval()不是 commandline --eval。这是因为我在身份验证方面遇到了一些问题。

正常使用是从命令行:

$ mongo test --eval "var collection = 'users', maxDepth = 3" /path/to/variety.js

我想做的是:

$ mongo
>> use admin
>> db.auth("foo", "bar")
>> use anotherColl
>> db.eval("/path/to/variety.js", "var collection = 'users', maxDepth = 3")
>> Thu Mar  7 13:19:10 uncaught exception: {
    "errmsg" : "compile failed: JS Error: SyntaxError: invalid flag after regular expression nofile_a:0",
    "ok" : 0
}

有没有办法db.eval()吃一个 javascript 文件而不是一个字符串?

4

1 回答 1

1

根据@Sammaye 和我的直觉,您不能将 .js 文件放入db.eval(). 然而,对于多样性,这里描述了一个解决方案。

mongo -u USER-p PASS admin --eval "var collection = 'COL', db_name='DB_NAME'" variety.js

现在是身份验证问题:(

于 2013-03-07T15:14:12.107 回答