Как передать аргумент в скрипт Mongo



Я использую файлы mongo и script следующим образом:



$ mongo getSimilar.js


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



$ mongo getSimilar.js apples


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



var arg  = ;
print(arg);
551   5  

5 ответов:

использовать --eval и используйте сценарии оболочки для изменения переданной команды.

mongo --eval "print('apples');"

или сделать глобальные переменные (кредит Тэд Маршалл):

$ cat addthem.js
printjson( param1 + param2 );
$ ./mongo --nodb --quiet --eval "var param1=7, param2=8" addthem.js
15

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

// vars.js
msg = "apples";

и getSimilar.js было:

print(msg);

затем:

$ mongo vars.js getSimilar.js
MongoDB shell version: blah
connecting to: test
loading file: vars.js
loading file: getSimilar.js
apples

не совсем так удобно, хотя.

установите оболочку 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

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

#!/bin/sh

objId=
EVAL="db.account.find({\"_id\" : \"$objId\"})"
echo $EVAL | mongo localhost:27718/balance_mgmt --quiet

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

#!/usr/bin/mongoexec --quiet

в скрипте вы можете получить доступ к аргументам как args[0].

https://github.com/pveierland/mongoexec

Comments

    Ничего не найдено.