指定在mongodb .js脚本中使用的数据库

时间:2011-07-19 19:59:17

标签: mongodb mongo-shell

我只想针对特定的mongodb数据库运行.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

2 个答案:

答案 0 :(得分:20)

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

答案 1 :(得分:1)

您可以使用hereMongoDB documentation中提到的db.getSiblingDB()方法。

// Equivalent for "use <db>" command in mongo shell
db = db.getSiblingDB('foo')

这在使用use帮助程序不可用的mongo shell编写脚本时特别有用。或者,当您无法在连接字符串上引用数据库时。