2011-07-19 1 views
14

Я просто хочу запустить сценарий .js для конкретной базы данных mongodb, но, похоже, не может получить правильный синтаксис.Укажите, какую базу данных использовать в скрипте mjodb .js

echo "print(db.address.find().limit(1));" > test.js 
mongo test.js 

Как выбрать базу данных, это будет выполняться, я пробовал различные комбинации use foo без успеха.

> show dbs      
admin (empty) 
local (empty) 
foo 0.203125GB 
bar 0.203125GB 

Я хотел бы использовать foo в этом случае.

ответ

18
mongo <name of db> --eval "db.runCommand(<js in here>);" 

Или, если вы не имеете конкретный RunCommand сценарий, вы можете просто сделать:

mongo <name of db> --eval "<js in here>;" 

Если вы используете возвращаемое значение:

mongo <name of db> --eval "db.eval('return fnName()')" 

Для файла

mongo <name of db> some_instructions.js 
+0

Как я могу указать файл? т.е. не помещать кусок javascript в эту функцию командной строки? – markdsievers

+0

Вышеприведенное для файла должно работать. Файл должен заканчиваться на .js –

+0

Спасибо Крису, очень полезно! – markdsievers