Това проработи при мен:
mongo --eval "var my_var = '$MY_VAR'" my_script.js
Изключете <
. mongo
ще обработи всички останали аргументи на командния ред като файлове за изпълнение/интерпретиране, но очевидно комбиниране на пренасочване на въвеждане на обвивката с --eval
причинява нулиране на пространството от имена на javascript.
Предполагам, но не мога да потвърдя, че това е така, защото имената на файловете, предадени като аргументи, се обработват чрез load()
механизъм, който според https://docs.mongodb.com/v3 .2/reference/method/load/
, се държи по следния начин: