Appendix B. mongo: The Shell

Throughout this text, we use the mongo binary, which is the database shell. We generally assume that you are running it on the same machine as mongod and that you are running mongod on the default port, but if you are not, you can specify this on startup and have the shell connect to another server:

$ bin/mongo staging.example.com:20000

This would connect to a mongod running at staging.example.com on port 20000.

The shell also, by default, starts out connected to the test database. If you’d like db to refer to a different database, you can use /dbname after the server address:

$ bin/mongo localhost:27017/admin

This connects to mongod running locally on the default port, but db will immediately refer to the admin database.

You can also start the shell without connecting to any database by using the --nodb option. This is useful if you’d like to just play around with JavaScript or connect later:

$ bin/mongo --nodb
MongoDB shell version: 1.5.3
type "help" for help
>

Keep in mind that db isn’t the only database connection you can have. You can connect to as many databases as you would like from the shell, which can be handy in multiserver environments. Simply use the connect() method, and assign the resulting connection to any variable you’d like. For instance, with sharding, we might want mongos to refer to the mongos server and also have a connection to each shard:

> mongos = connect("localhost:27017")
connecting to: localhost:27017
localhost:27017
> shard0 = connect("localhost:30000")
connecting to: localhost:30000
localhost:30000
> shard1 = connect("localhost:30001")
connecting to: localhost:30001
localhost:30001

Then, we can use mongos, shard0, or shard1 as the db variable is usually used. (Although special helpers, such as use foo or show collections, will not work.)

Shell Utilities

There are a number of useful shell functions that were not covered earlier.

For administrating multiple databases, it can be useful to have multiple database variables, not db. For example, with sharding, you may want to maintain a separate variable pointing to your config database:

> config = db.getSisterDB("config")
config
> config.shards.find()
...

You can even connect to multiple servers within a single shell using the connect function:

> shard_db = connect("shard.example.com:27017/mydb")
connecting to shard.example.com:27017/mydb
mydb
>

The shell can also run shell commands:

> runProgram("echo", "Hello", "world")
shell: started mongo program echo Hello world
0
> sh6487| Hello world

(The output looks strange because the shell is running.)

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.189.170.134