tags:

views:

45

answers:

1

Hi,

I'm a beginner with MongoDB and I've some questions:

  1. When I'm connected to Mongo, and i execute show dbs I see 2 databases: admin and local. What's their role? Then if I execute an insert command like db.foo.insert({"value":"mongo"}), the test database appears. Why? How can i specify a custom name for a database?

  2. With show dbs I get the databases (somehow like show databases in sql), how can I then list the collections inside a database (I would use show tables in sql)?

  3. When executing a command, the MongoDB tutorial always uses the db object. Is it the main object (a sort of "connection" object) that has to used for executing commands or it's something else?

Thanks!

+2  A: 
  1. admin and local contain various settings local to the server, like users who are authenticated to connect. Under beginner usage, you shouldn't need to worry about them at all. By default you connect to a database named test. To connect to a new database, just use databasename from the mongo command line, or mongo databasename from your OS shell.
  2. use [database_name] and then show collections
  3. The db object is your root handle to the currently-selected database on the mongo commmand line. The command line is really just a Javascript command line, and there are various mongodb-specific objects and functions exposed that let you do stuff. Try help() for a full listing.
Chris Heald
Thanks for the answer. What about the "test" database, why does it always appear as default when creating new collections?
Marco
mongo implicitly creates databases when you switch to them. Firing up the command line client without an argument automatically uses (and creates, if it's not already there) the `test` database. You can avoid it by always invoking mongo with a parameter (the DB you want to connect to).
Chris Heald