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