Detta fungerade för mig:
mongo --eval "var my_var = '$MY_VAR'" my_script.js
Utelämna < . mongo kommer att bearbeta alla återstående argument på kommandoraden som filer som ska köras/tolkas, men uppenbarligen kombinerar skalindataomdirigeringen med --eval gör att javascript-namnutrymmet återställs.
Jag antar men kan inte bekräfta att detta beror på att filnamn som skickas som argument bearbetas via load() mekanism, som enligt https://docs.mongodb.com/v3 .2/reference/method/load/
, beter sig enligt följande: