Mongodb-introduction of the MONGO Shell

Source: Internet
Author: User
Tags tojson mongo shell


TheMONGOShell is a interactive JavaScript interface to MongoDB. You can use theMONGOShell to query and update data as well as perform administrative operations.

TheMONGOShell is a component of the MongoDB distributions. Once you has installed and has started MongoDB, connect theMONGOShell to your running MongoDB instance.

Most examples in the MongoDB Manual use theMONGOshell; However, many drivers provide similar interfaces to MongoDB.

Start the MONGO Shell

IMPORTANT: Ensure that MongoDB was running before attempting to start theMONGOshell.

To start theMONGOshell and connect to your MongoDB instance running on localhost with default port:

    1. At a prompt with a terminal window (or a command prompt for Windows), go to your <mongodbinstallation dir>:

  1. cd <mongodb installation dir>
  2. Type ./bin/mongo to start mongo:

    If you have added the <mongodb installation dir>/bin to the PATH environment variable, you can just type mongo instead of ./bin/mongo.


When you run mongo without any arguments, the mongo shell will attempt to connect to the MongoDB instance running on the localhost interface on port 27017. To specify a different host or port number, as well as other options, see examples of starting up mongo and mongo reference which provides details on the available options.

.mongorc.js File

When starting, mongo checks the user’s HOME directory for a JavaScript file named .mongorc.js. If found, mongointerprets 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.


Working with the mongo Shell

To display the database you are using, type db:

> db

The operation should return test, which is the default database. To switch databases, issue the use <db> helper, as in the following example:

> use mydb
switched to db mydb

To list the available databases, use the helper show dbs. See also db.getSiblingDB() method to access a different database from the current database without switching your current database context (i.e. db).

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 insert() operation:

> use myNewDatabase
switched to db myNewDatabase
> db.myCollection.insert( { x: 1 } );
2016-11-30T22:43:53.953+0800 I COMMAND  [conn3] command myNewDatabase.myCollection command: insert { insert: "myCollection", documents: [ { _id: ObjectId(‘583ee5a99efcdb65c8842e89‘), x: 1.0 } ], ordered: true } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 reslen:25 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, Database: { acquireCount: { w: 1, W: 1 } }, Collection: { acquireCount: { W: 1 } } } protocol:op_command 280ms
WriteResult({ "nInserted" : 1 })

The db.myCollection.insert() 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 the collection, for instance if the name contains a space, hyphen, or starts with a number, you can use an alternate syntax to refer to the collection, as in the following:

> db["3test"].find()
> db.getCollection("3test").find()

For more documentation of basic MongoDB operations in the mongo shell, see:

  • Getting Started Guide
  • Insert Documents
  • Query Documents
  • Update Documents
  • Delete Documents
  • mongo Shell Methods
Format Printed Results

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:

> db.myCollection.find().pretty()

In addition, you can use the following explicit print methods in the mongo shell:

  • print() to print without formatting
  • print(tojson(<obj>)) to print with JSON formatting and equivalent to printjson()
  • printjson() to print with JSON formatting and equivalent to print(tojson(<obj>))

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.

Multi-line Operations in the mongo Shell

If 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:

> var x = 1
> var c = 0
> if (x > 0) {
... c++;
... }
> c

You can exit the line continuation mode if you enter two blank lines, as in the following example:

> if (x > 0


Tab Completion and Other Keyboard Shortcuts

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 <Tab> to autocomplete or to list the completion possibilities, as in the following example which uses <Tab> to complete the method name starting with the letter ‘c‘:


Exit the Shell

To exit the shell, type quit() or use the <Ctrl-c> shortcut.


MongoDB - Introduction of the mongo Shell

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.