开发者

Specify which database to use in mongodb .js script

I just want to run a .js script against a particular mongodb database, but can't seem to get the correct syntax.

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

How do I select the database that this will be executed on, I've tried various开发者_JAVA百科 combinations of use foo with no success.

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

I would like to use foo in this case.


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

Or if you dont have a specific runCommand script, you can just do:

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

If you are using a return value:

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

For a file

mongo <name of db> some_instructions.js


You can use the db.getSiblingDB() method, as mentioned here and in the MongoDB documentation.

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

This is particularly useful when writing scripts using the mongo shell where the use helper is not available. Or when you cannot refer to the DB on the connection string.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜