mongo
ShellOn this page
mongo
Shell and Connect to MongoDBmongo
Shell.mongorc.js
FileThe mongo
shell is an interactive JavaScript interface to MongoDB. You can use the mongo
shell to query and update data as well as perform administrative operations.
The mongo
shell is a component of the MongoDB distributions. Once you have installed and have started MongoDB, connect the mongo
shell to your running MongoDB instance.
mongo
Shell and Connect to MongoDBEnsure that MongoDB is running before attempting to start the mongo
shell.
Open a terminal window (or a command prompt for Windows) and go to your
directory:
copy
copied
cd/bin
TIP
Adding your
to the PATH
environment variable allows you to type mongo
instead of having to go to the
directory or specify the full path to the binary.
You can run mongo
shell without any command-line options to connect to a MongoDB instance running on your localhost with default port 27017:
copy
copied
mongo
To explicitly specify the port, include the --port
command-line option. For example, to connect to a MongoDB instance running on localhost with a non-default port 28015:
copy
copied
mongo --port 28015
To explicitly specify the hostname and/or port,
You can specify a connection string. For example, to connect to a MongoDB instance running on a remote host machine with default port 27017:
copycopied
mongo "mongodb://mongodb0.example.com:27017"
You can use the command-line option --host
. For example, to connect to a MongoDB instance running on a remote host machine:
copied
mongo --host mongodb0.example.com:27017
You can use the --host
and --port
command-line options. For example, to connect to a MongoDB instance running on a remote host machine:
copied
mongo --host mongodb0.example.com --port 27017
To connect to a MongoDB instance requires authentication:
You can specify the username, authentication database, and optionally the password in the connection string. For example, to connect and authenticate to a remote MongoDB instance as user alice
:
NOTE
If you do not specify the password in the connection string, the shell will prompt for the password.
copycopied
mongo "mongodb://[email protected]:27017/?authSource=admin"
You can use the --username
and --password
, --authenticationDatabase
command-line options. For example, to connect and authenticate to a remote MongoDB instance as useralice
:
NOTE
If you specify --password
without the user’s password, the shell will prompt for the password.
copied
mongo --username alice --password --authenticationDatabase admin --host mongodb0.examples.com --port 28015
To connect to a replica set:
You can specify the replica set name and members in the connection string.
copycopied
mongo "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"
If using the DNS Seedlist Connection Format, you can specify the connection string:
copycopied
mongo "mongodb+srv://server.example.com/"
NOTE
Use of the +srv
connection string modifier automatically sets the ssl option to true for the connection.
You can specify the replica set name and members from the --host
command-line option. For example, to connect to replica set named replA
:
copied
mongo --host replA/mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017
For TLS/SSL connections,
You can specify the ssl=true
option in the connection string.
copied
mongo "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA&ssl=true"
If using the DNS Seedlist Connection Format, you can include the +srv
connection string modifier:
copied
mongo "mongodb+srv://server.example.com/"
NOTE
Use of the +srv
connection string modifier automatically sets the ssl option to true for the connection.
You can specify --ssl
command-line option. For example, to connect to replica set named replA
:
copied
mongo --ssl --host replA/mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017
SEE ALSO
For more information on the options used in the connection examples as well as other options, see mongo reference and examples of starting up mongo.
mongo
ShellTo display the database you are using, type db
:
copy
copied
db
The operation should return test
, which is the default database.
To switch databases, issue the use
helper, as in the following example:
copy
copied
use
See also db.getSiblingDB()
method to access a different database from the current database without switching your current database context (i.e. db
).
To list the databases available to the user, use the helper show dbs
. [1]
You can switch to non-existing databases. When you first store data in the database, such as by creating a collection, MongoDB creates the database. For example, the following creates both the databasemyNewDatabase
and the collection myCollection
during the insertOne()
operation:
copy
copied
use myNewDatabase db.myCollection.insertOne( { x: 1 } );
The db.myCollection.insertOne()
is one of the methods available in the mongo shell.
db
refers to the current database.myCollection
is the name of the collection.If the mongo
shell does not accept the name of a collection, you can use the alternative db.getCollection()
syntax. For instance, if a collection name contains a space or hyphen, starts with a number, or conflicts with a built-in function:
copy
copied
db.getCollection("3 test").find() db.getCollection("3-test").find() db.getCollection("stats").find()
The mongo
shell prompt has a limit of 4095 codepoints for each line. If you enter a line with more than 4095 codepoints, the shell will truncate it.
For more documentation of basic MongoDB operations in the mongo
shell, see:
[1] | If the deployment runs with access control, the operation returns different values based on user privileges. SeelistDatabases Behavior for details. |
The db.collection.find()
method returns a cursor to the results; however, in the mongo
shell, if the returned cursor is not assigned to a variable using the var
keyword, then the cursor is automatically iterated up to 20 times to print up to the first 20 documents that match the query. The mongo
shell will prompt Type it
to iterate another 20 times.
To format the printed result, you can add the .pretty()
to the operation, as in the following:
copy
copied
db.myCollection.find().pretty()
In addition, you can use the following explicit print methods in the mongo
shell:
print()
to print without formattingprint(tojson())
to print with JSON formatting and equivalent to printjson()
printjson()
to print with JSON formatting and equivalent to print(tojson())
For more information and examples on cursor handling in the mongo
shell, see Iterate a Cursor in the mongo Shell. See also Cursor Help for list of cursor help in the mongo
shell.
mongo
ShellIf you end a line with an open parenthesis ('('
), an open brace ('{'
), or an open bracket ('['
), then the subsequent lines start with ellipsis ("..."
) until you enter the corresponding closing parenthesis (')'
), the closing brace ('}'
) or the closing bracket (']'
). The mongo
shell waits for the closing parenthesis, closing brace, or the closing bracket before evaluating the code, as in the following example:
copy
copied
> if ( x > 0 ) { ... count++; ... print (x); ... }
You can exit the line continuation mode if you enter two blank lines, as in the following example:
copy
copied
> if (x > 0 ... ... >
The mongo
shell supports keyboard shortcuts. For example,
Use the up/down arrow keys to scroll through command history. See .dbshell documentation for more information on the .dbshell
file.
Use
to autocomplete or to list the completion possibilities, as in the following example which uses
to complete the method name starting with the letter 'c'
:
copied
db.myCollection.c
Because there are many collection methods starting with the letter 'c'
, the
will list the various methods that start with 'c'
.
For a full list of the shortcuts, see Shell Keyboard Shortcuts
.mongorc.js
FileWhen starting, mongo
checks the user’s HOME
directory for a JavaScript file named .mongorc.js. If found, mongo
interprets the content of .mongorc.js
before displaying the prompt for the first time. If you use the shell to evaluate a JavaScript file or expression, either by using the --eval
option on the command line or by specifying a .js file to mongo, mongo
will read the .mongorc.js
file after the JavaScript has finished processing. You can prevent .mongorc.js
from being loaded by using the --norc
option.
To exit the shell, type quit()
or use the
shortcut.