在mongo脚本中测试参数的存在

dul*_*ule 0 javascript mongodb

我试图通过执行以下操作将参数传递给mongodb脚本:

mongo --eval="foo='hello world'" test.js
Run Code Online (Sandbox Code Playgroud)

但是我希望变量foo是可选的(即,foo如果它存在则使用,否则在没有它的情况下继续),因此在test.js我测试变量的存在时:

if (foo)
    print(foo)
    //do stuff with foo
Run Code Online (Sandbox Code Playgroud)

如果我没有在命令行上指定foo,则会引发错误:

$ mongo test.js
ReferenceError: foo is not defined test.js:1
failed to load: test.js
Run Code Online (Sandbox Code Playgroud)

这通常适用于普通的JS,我如何在一个用于mongo的脚本中执行此操作?

基本上,我希望能够在mongo test.js不设置foo变量的情况下仍然可以使脚本仍然有效.

Bub*_*les 5

我相信mongo的js运行时类似于node.js,因为它不允许直接访问尚未定义的变量.我测试的方法是使用"global.foo"(或"this.foo",具体取决于具体情况),如果定义了它将返回foo,否则将是未定义的(并且不会导致错误) ).