I want to pass the environment variable named file_path
to js file.
I am using the following syntax:
mongo --eval "var file_path='$file_path'" < aggregation.js
Output:
MongoDB shell version: 3.2.9-rc0
connecting to: test
Note:
It does not execute aggregation.js
file.
only it pass the argument.
The MongoDB Shell, mongosh , is a fully functional JavaScript and Node. js 16. x REPL environment for interacting with MongoDB deployments. You can use the MongoDB Shell to test queries and operations directly with your database. mongosh is available as a standalone package in the MongoDB Download Center.
The . env file contains the individual user environment variables that override the variables set in the /etc/environment file. You can customize your environment variables as desired by modifying your . env file.
This worked for me:
mongo --eval "var my_var = '$MY_VAR'" my_script.js
Leave out the <
. mongo
will process any remaining arguments on the command line as files to be executed/interpreted, but apparently combining the shell input redirect with --eval
causes the javascript namespace to be reset.
I assume but cannot confirm that this is because filenames passed as arguments are processed via the load()
mechanism, which according to https://docs.mongodb.com/v3.2/reference/method/load/, behaves as follows:
After executing a file with load(), you may reference any functions or variables defined the file from the mongo shell environment.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With