Điều này đã làm việc cho tôi:
mongo --eval "var my_var = '$MY_VAR'" my_script.js
Bỏ đi <
. mongo
sẽ xử lý mọi đối số còn lại trên dòng lệnh dưới dạng tệp được thực thi / thông dịch, nhưng dường như kết hợp chuyển hướng đầu vào shell với --eval
khiến không gian tên javascript được đặt lại.
Tôi giả sử nhưng không thể xác nhận rằng điều này là do tên tệp được chuyển làm đối số được xử lý qua load()
theo https://docs.mongodb.com/v3 .2 / reference / method / load /
, hoạt động như sau: