mongo Shell Quick Reference

mongo Shell Command History

You can retrieve previous commands issued in the mongo shellwith the up and down arrow keys. Command history is stored in~/.dbshell file. See .dbshell for moreinformation.

Command Line Options

The mongo shell can be started with numerous options. Seemongo shell page for details on allavailable options.

The following table displays some common options for mongo:

OptionDescription
—helpShow command line options
—nodbStart mongo shell without connecting to a database.To connect later, see Opening New Connections.
—shellUsed in conjunction with a JavaScript file (i.e.<file.js>) to continue in themongo shell after running the JavaScript file.See JavaScript file for anexample.

Command Helpers

The mongo shell provides various help. The following tabledisplays some common help methods and commands:

Help Methods and CommandsDescription
helpShow help.
db.help()Show help for database methods.
db.<collection>.help()Show help on collection methods. The <collection> can be thename of an existing collection or a non-existing collection.
show dbsPrint a list of all databases on the server.The operation corresponds to the listDatabases command.If the deployment runs with access control, the operationreturns different values based on user privileges. SeelistDatabases Behavior for details.
use <db>Switch current database to <db>. The mongo shellvariable db is set to the current database.
show collectionsPrint a list of all collections for current database.See alsoshow collections
show usersPrint a list of users for current database.
show rolesPrint a list of all roles, both user-defined and built-in, forthe current database.
show profilePrint the five most recent operations that took 1 millisecond ormore. See documentation on the database profiler for more information.
show databasesPrint a list of all available databases.The operation corresponds to the listDatabases command.If the deployment runs with access control, the operationreturns different values based on user privileges. SeelistDatabases Behavior for details.
load()Execute a JavaScript file. SeeWrite Scripts for the mongo Shellfor more information.

Basic Shell JavaScript Operations

The mongo shell provides aJavaScript API for database operations.

In the mongo shell, db is the variable that referencesthe current database. The variable is automatically set to the defaultdatabase test or is set when you use the use <db> to switchcurrent database.

The following table displays some common JavaScript operations:

JavaScript Database OperationsDescription
db.auth()If running in secure mode, authenticate the user.
coll = db.<collection>Set a specific collection in the current database to a variablecoll, as in the following example:
  1. coll = db.myCollection;
You can perform operations on the myCollection using thevariable, as in the following example:
  1. coll.find();
db.collection.find()Find all documents in the collection and returns a cursor.See the db.collection.find() andQuery Documents for more information andexamples.See Iterate a Cursor in the mongo Shell for information oncursor handling in the mongo shell.
db.collection.insertOne()Insert a new document into the collection.
db.collection.insertMany()Insert multiple new documents into the collection.
db.collection.updateOne()Update a single existing document in the collection.
db.collection.updateMany()Update multiple existing documents in the collection.
db.collection.save()Insert either a new document or update an existing document inthe collection.
db.collection.deleteOne()Delete a single document from the collection.
db.collection.deleteMany()Delete documents from the collection.
db.collection.drop()Drops or removes completely the collection.
db.collection.createIndex()Create a new index on the collection if the index does notexist; otherwise, the operation has no effect.
db.getSiblingDB()Return a reference to another database using this sameconnection without explicitly switching the current database.This allows for cross database queries.

For more information on performing operations in the shell, see:

Keyboard Shortcuts

The mongo shell provides most keyboard shortcuts similar tothose found in the bash shell or in Emacs. For some functionsmongo provides multiple key bindings, to accommodateseveral familiar paradigms.

The following table enumerates the keystrokes supported by themongo shell:

KeystrokeFunction
Up-arrowprevious-history
Down-arrownext-history
Homebeginning-of-line
Endend-of-line
Tabautocomplete
Left-arrowbackward-character
Right-arrowforward-character
Ctrl-left-arrowbackward-word
Ctrl-right-arrowforward-word
Meta-left-arrowbackward-word
Meta-right-arrowforward-word
Ctrl-Abeginning-of-line
Ctrl-Bbackward-char
Ctrl-Cexit-shell
Ctrl-Ddelete-char (or exit shell)
Ctrl-Eend-of-line
Ctrl-Fforward-char
Ctrl-Gabort
Ctrl-Jaccept-line
Ctrl-Kkill-line
Ctrl-Lclear-screen
Ctrl-Maccept-line
Ctrl-Nnext-history
Ctrl-Pprevious-history
Ctrl-Rreverse-search-history
Ctrl-Sforward-search-history
Ctrl-Ttranspose-chars
Ctrl-Uunix-line-discard
Ctrl-Wunix-word-rubout
Ctrl-Yyank
Ctrl-ZSuspend (job control works in linux)
Ctrl-H (i.e. Backspace)backward-delete-char
Ctrl-I (i.e. Tab)complete
Meta-Bbackward-word
Meta-Ccapitalize-word
Meta-Dkill-word
Meta-Fforward-word
Meta-Ldowncase-word
Meta-Uupcase-word
Meta-Yyank-pop
Meta-[Backspace]backward-kill-word
Meta-<beginning-of-history
Meta->end-of-history

Queries

In the mongo shell, perform read operations using thefind() and findOne()methods.

The find() method returns a cursor objectwhich the mongo shell iterates to print documents onscreen. By default, mongo prints the first 20. Themongo shell will prompt the user to “Type it” to continueiterating the next 20 results.

The following table provides some common read operations in themongo shell:

Read OperationsDescription
db.collection.find(<query>)Find the documents matching the <query> criteria in thecollection. If the <query> criteria is not specified or isempty (i.e {} ), the read operation selects all documents inthe collection.The following example selects the documents in the userscollection with the name field equal to "Joe":
  1. coll = db.users;coll.find( { name: "Joe" } );
For more information on specifying the <query> criteria, seeSpecify Equality Condition.
db.collection.find(<query>, <projection>)Find documents matching the <query> criteria and return justspecific fields in the <projection>.The following example selects all documents from the collectionbut returns only the name field and the _id field. The_id is always returned unless explicitly specified to notreturn.
  1. coll = db.users;coll.find( { }, { name: true } );
For more information on specifying the <projection>, seeProject Fields to Return from Query.
db.collection.find().sort(<sort order>)Return results in the specified <sort order>.The following example selects all documents from the collectionand returns the results sorted by the name field inascending order (1). Use -1 for descending order:
  1. coll = db.users;coll.find().sort( { name: 1 } );
db.collection.find(<query>).sort(<sort order>)Return the documents matching the <query> criteria in thespecified <sort order>.
db.collection.find( … ).limit( <n> )Limit result to <n> rows. Highly recommended if you need onlya certain number of rows for best performance.
db.collection.find( … ).skip( <n> )Skip <n> results.
db.collection.count()Returns total number of documents in the collection.
db.collection.find(<query>).count()Returns the total number of documents that match the query.The count() ignores limit() and skip(). Forexample, if 100 records match but the limit is 10,count() will return 100. This will befaster than iterating yourself, but still take time.
db.collection.findOne(<query>)Find and return a single document. Returns null if not found.The following example selects a single document in the userscollection with the name field matches to "Joe":
  1. coll = db.users;coll.findOne( { name: "Joe" } );
Internally, the findOne()method is the find() methodwith a limit(1).

See Query Documents documentation for more information andexamples. See Query and Projection Operators to specify other queryoperators.

Error Checking Methods

Changed in version 2.6.

The mongo shell write methods now integrates theWrite Concern directly into the method execution ratherthan with a separate db.getLastError() method. As such, thewrite methods now return a WriteResult() object thatcontains the results of the operation, including any write errors andwrite concern errors.

Previous versions used db.getLastError() anddb.getLastErrorObj() methods to return error information.

Administrative Command Helpers

The following table lists some common methods to support databaseadministration:

JavaScript Database Administration MethodsDescription
db.fromColl.renameCollection(<toColl>)Rename collection from fromColl to <toColl>. SeeNaming Restrictions.
db.getCollectionNames()Get the list of all collections in the current database.
db.dropDatabase()Drops the current database.

See also administrative database methods for a full list of methods.

Opening Additional Connections

You can create new connections within the mongo shell.

The following table displays the methods to create the connections:

JavaScript Connection Create MethodsDescription
  1. db = connect("<host><:port>/<dbname>")
Open a new database connection.
  1. conn = new Mongo()db = conn.getDB("dbname")
Open a connection to a new server using new Mongo().Use getDB() method of the connection to select a database.

See also Opening New Connections for more information on theopening new connections from the mongo shell.

Miscellaneous

The following table displays some miscellaneous methods:

MethodDescription
Object.bsonsize(<document>)Prints the BSON size of a <document> in bytes

Additional Resources

Consider the following reference material that addresses themongo shell and its interface:

Additionally, the MongoDB source code repository includes a jstestsdirectorywhich contains numerous mongo shell scripts.