Как передать аргумент Сценарию монго

Я использовал монго и файлы сценария как это:

$ mongo getSimilar.js

Я хотел бы передать аргумент файлу:

$ mongo getSimilar.js apples

И затем в сценарии файл берут аргумент, переданный в.

var arg  = $1;
print(arg);
62
задан 13 April 2012 в 21:38

4 ответа

Я записал маленькую утилиту для решения проблемы для меня. С mongoexec утилита, Вы смогли бы выполнить команду ./getSimilar.js apples путем добавления следующего к началу сценария:

#!/usr/bin/mongoexec --quiet

В рамках сценария, можно затем получить доступ к аргументам как args[0].

https://github.com/pveierland/mongoexec

0
ответ дан 31 October 2019 в 13:48

Я решил эту проблему, при помощи JavaScript bundler пакет: https://parceljs.org /

С этим, можно использовать переменные среды узла в сценарии как:

var collection = process.env.COLLECTION;

при создании с пакетом, огибающий var встраивается:

parcel build ./src/index.js --no-source-maps

единственный недостаток, что необходимо восстановить сценарий каждый раз, когда Вы хотите изменить огибающий Вар. Но так как пакет действительно быстр, это не действительно проблема, по моему скромному мнению.

0
ответ дан 31 October 2019 в 13:48

Я использовал сценарий оболочки для передачи по каналу команды монго к монго. В монго управляют, чтобы я использовал аргумент, который я передал сценарию оболочки (т.е. я использовал $1):

#!/bin/sh

objId=$1
EVAL="db.account.find({\"_id\" : \"$objId\"})"
echo $EVAL | mongo localhost:27718/balance_mgmt --quiet
1
ответ дан 31 October 2019 в 13:48

Установите 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
2
ответ дан 31 October 2019 в 13:48

Другие вопросы по тегам:

Похожие вопросы: