测试mongo脚本中是否存在参数

Test existence of argument in mongo script

本文关键字:存在 参数 是否 mongo 脚本 测试      更新时间:2023-09-26

我正试图通过以下操作将参数传递到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,并且脚本仍然可以工作。

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