Я использовал монго и файлы сценария как это:
$ mongo getSimilar.js
Я хотел бы передать аргумент файлу:
$ mongo getSimilar.js apples
И затем в сценарии файл берут аргумент, переданный в.
var arg = $1;
print(arg);
Я записал маленькую утилиту для решения проблемы для меня. С mongoexec
утилита, Вы смогли бы выполнить команду ./getSimilar.js apples
путем добавления следующего к началу сценария:
#!/usr/bin/mongoexec --quiet
В рамках сценария, можно затем получить доступ к аргументам как args[0]
.
Я решил эту проблему, при помощи JavaScript bundler пакет: https://parceljs.org /
С этим, можно использовать переменные среды узла в сценарии как:
var collection = process.env.COLLECTION;
при создании с пакетом, огибающий var встраивается:
parcel build ./src/index.js --no-source-maps
единственный недостаток, что необходимо восстановить сценарий каждый раз, когда Вы хотите изменить огибающий Вар. Но так как пакет действительно быстр, это не действительно проблема, по моему скромному мнению.
Я использовал сценарий оболочки для передачи по каналу команды монго к монго. В монго управляют, чтобы я использовал аргумент, который я передал сценарию оболочки (т.е. я использовал $1
):
#!/bin/sh
objId=$1
EVAL="db.account.find({\"_id\" : \"$objId\"})"
echo $EVAL | mongo localhost:27718/balance_mgmt --quiet
Установите var оболочки:
password='bladiebla'
Создают js сценарий:
cat <<EOT > mongo-create-user.js
print('drop user admin');
db.dropUser('admin');
db.createUser({
user: 'admin',
pwd: '${password}',
roles: [ 'readWrite']
});
EOT
сценарий Передачи к монго:
mongo mongo-create-user.js