我正在尝试通过执行以下操作将参数传递给mongodb脚本:
mongo --eval="foo='hello world'" test.js
但是我希望变量foo是可选的(例如,如果它存在则使用foo
,否则继续使用它),所以在test.js
我测试变量的存在:
if (foo)
print(foo)
//do stuff with foo
如果我没有在命令行中指定foo,则抛出错误:
$ mongo test.js
ReferenceError: foo is not defined test.js:1
failed to load: test.js
这通常适用于普通的JS,我如何在mongo的脚本中执行此操作?
基本上,我希望能够在不设置foo变量的情况下仍然执行mongo test.js
并让脚本仍然有效。
答案 0 :(得分:5)
我认为mongo的js运行时类似于node.js,因为它不允许直接访问尚未定义的变量。我测试的方法是使用“global.foo”(或“this.foo”,具体取决于具体情况),如果定义了它将返回foo,否则将是未定义的(并且不会导致错误) )。