Dit werkte voor mij:
mongo --eval "var my_var = '$MY_VAR'" my_script.js
Laat de < weg . mongo zal alle resterende argumenten op de opdrachtregel verwerken als bestanden die moeten worden uitgevoerd/geïnterpreteerd, maar blijkbaar wordt de shell-invoeromleiding gecombineerd met --eval zorgt ervoor dat de javascript-naamruimte opnieuw wordt ingesteld.
Ik neem aan, maar kan niet bevestigen dat dit komt omdat bestandsnamen die als argumenten worden doorgegeven, worden verwerkt via de load() mechanisme, dat volgens https://docs.mongodb.com/v3 .2/referentie/methode/laden/
, gedraagt zich als volgt: