Das hat bei mir funktioniert:
mongo --eval "var my_var = '$MY_VAR'" my_script.js
Lassen Sie den <
weg . mongo
verarbeitet alle verbleibenden Argumente auf der Befehlszeile als auszuführende/interpretierende Dateien, kombiniert aber anscheinend die Umleitung der Shell-Eingabe mit --eval
bewirkt, dass der Javascript-Namespace zurückgesetzt wird.
Ich nehme an, kann aber nicht bestätigen, dass dies daran liegt, dass als Argumente übergebene Dateinamen über load()
verarbeitet werden Mechanismus, der gemäß https://docs.mongodb.com/v3 .2/reference/method/load/
, verhält sich wie folgt: