Setting default database for MongoDB shell
It's entirely possible to set a default, albiet in a slightly strange way. Here's what I do for using automatic authentication to an admin in .mongorc.js:
// Persist the database selected
var selectedDB = db
// Authenticate
db = db.getSiblingDB("admin")
db.auth('admin','adminpass')
// Switch back to selected DB
db = selectedDB
// Universally allow read queries on secondaries from shell.
rs.slaveOk()
To directly answer the question, I'd think the way to accomplish this is simply by executing a check to see if the current database loaded up is "test" and alter only if that's the case, so.
if (db.name == 'test')
db.getSiblingDB('yourdefaultdb')
This allows both selecting a database at the command line and setting a default. Naturally it'll prevent you from overriding and using the "test" db from the command line, but I think that's a bit of a strange use case given the question. Cheers.
Command Line
You can select the database to use on the mongo command line, eg for 'mydb':
mongo mydb
If a database name is not provided, 'test' will be used.
In .mongorc.js
If you want to set a default database without specifying on the command line each time, you can add a line to the .mongorc.js
file in your home directory:
db = db.getSiblingDB("mydb")
The .mongorc.js
file is executed after the mongo
shell is started, so if you set a default here it will override a database specified on the command line.