To zadziałało dla mnie:
mongo --eval "var my_var = '$MY_VAR'" my_script.js
Pomiń <
. mongo
przetworzy wszystkie pozostałe argumenty wiersza poleceń jako pliki do wykonania/interpretacji, ale najwyraźniej łącząc przekierowanie wejścia powłoki z --eval
powoduje zresetowanie przestrzeni nazw javascript.
Zakładam, ale nie mogę potwierdzić, że dzieje się tak, ponieważ nazwy plików przekazywane jako argumenty są przetwarzane przez load()
mechanizm, który zgodnie z https://docs.mongodb.com/v3 .2/odniesienie/metoda/ładowanie/
, zachowuje się następująco: