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: