Skip to content

Instantly share code, notes, and snippets.

Last active May 22, 2024 10:37
Show Gist options
  • Save michaeltreat/d3bdc989b54cff969df86484e091fd0c to your computer and use it in GitHub Desktop.
Save michaeltreat/d3bdc989b54cff969df86484e091fd0c to your computer and use it in GitHub Desktop.
Quick Cheat Sheet for Mongo DB Shell commands.

MongoDB Shell Commands Cheat Sheet.

This is a Cheat Sheet for interacting with the Mongo Shell ( mongo on your command line). This is for MongoDB Community Edition.


Mongo Manual can help you with getting started using the Shell.

FAQ for MongoDB Fundamentals and other FAQs can be found in the side-bar after visiting that link.

The Mongo Shell reference can be found here.

Anything that looks like db.<something>() will be found in Database Methods.

Anything that looks like db.collection.<something> will be found in Collection Methods.

Use to get a list of all database commands. ( Note that it's pretty long.)

Anything in < > should be replaced with your unique values. IE: You want to have a database called Cars so you would use the command use <db> but you would type it as use Cars.


This table will list the commands most commonly used when working with the database as a whole.

Type Command Description
Create/Connect use <db> Connects to a specific database. If none exists then one will automatically be created with that name. Doc
List All show dbs Lists all Databases. DBs with no data are not shown. Doc
List Current db.getName() Lists the name of the currently selected databasse. Doc
Return db Returns the currently seleceted Database. Allows you to use methods and chain commands. IE db.createCollection('test'). Doc
Drop db.dropDatabase() Drops the currently selected Database. Doc
Stats db.stats() Lists the stats about the current Database. Doc


This Table lists the commands most commonly used when working with collections as a whole.

Type Command Description
Create db.createCollection('<collection>) Creates a new empty collection in the database. Doc
List db.getCollectionNames() Lists all collections for a current Database. Doc
Return db.getCollection('<collection>') Returns a collection. Can chain methods onto it. IE db.getCollection.('authors').find({}). Doc
Return/Create db.<collection> Similar to db.getCollection(), but if the collection doesn't exist, then the collection will be return, but not added unless data is also added to that collection at the same time. IE: db.items does not add a collection to the database, but db.items.insertOne({name: 'Mike'}) would, because data is also being added to the collection. Use db.createCollection() to add an empty collection. Doc
Drop db.<collection>.drop() Drops the collection from the database. Doc
Rename db.<cllectn>.renameCollection('collection') Renames a collection. Doc


This section is broken down into 5 sub-sections. The first 4 match the CRUD Verbs of Create, Read, Update, Delete, and the last one is a list of Combos like findAndUpdate. Check here for the Mongo Docs on Crud

Couple notes here:

  1. All of these commands start with db.<collection> where <collection> is the name of the collection you want to call these methods on. Any exceptions will be noted in the description.**
  2. {query} Is referring to queries like {<field>: '<value>', <field>:'<value>', etc). IE: { book: 'Golden River Doth Flows', author: 'I.P. Freely', etc}. They are field-value pairs that are used to make documents, and also used during searches, aka queries.


Type Command Description
Create One .insertOne({<doc>}) Inserts a document into the collection. IE:{make:"ford"}). Doc
Create One/Many .insert([{<doc>},{<doc>},{<doc>}] ) Inserts One or more documents into the collection. If an array is passed in it will make a record of each document in the array. Otherwise it will accept a single document. Doc


Most of these commands allow methods to be chained onto them.

Type Command Description
Count .count() Returns the number of items in the collection. Doc
Return All .find({}) Returns an array of all items in a collection. .find() Must be passed {} in order to return all documents. Doc
Return All Filtered .find({query}) Returns an array of items in a collection that match the query passed into .find(). See Query and Project Operators for extra info on querys. Doc
Return One Filtered .findOne({query}) Returns a document (not an array) of the first item found, filtering based off what was passed into .findOne(). Useful when searching by unique fields like _id, IE{_id: 1}). Doc


Type Command Description
Update/Replace .update({query}, { $set: {query} }, options) The first argument is used as the query to find the document. The second argument specifies which field which to update. Exclude $set: and the entire document will be Replaced. Common options: upsert: <boolean> to keep it unique, and multi: <boolean> will update multiple documents if set to true. Docs and Field Operator Docs
Update One/Many .updateOne() and .updateMany() Basically the same as the above function, except the multi: <boolean> option is basically defaulted to false and true, and isnt' an allowed option that can be passed in. One Doc, Many Doc


Type Command Description
Delete One .deleteOne({query}) Deletes the first document that matches the query. Recommend to search by _id or another unique field. Doc
Delete Many/All .deleteMany({query}) Deletes all records that match the query. Leave the query blank to delete all documents. Doc


These are some combo commands that really just do the same thing as their base commands, but have a couple extra options.

All of these can leave their {query} blank and it will find the first document and execute it's verb on that item.

Command Desctiption
.findOneAndDelete({query}) Finds the first document that matches the query and deletes it. [Doc]
.findOneAndUpdate({query}, {<update>}, {<options>}) Finds the first document that matches the query in the first argument, and updates it using the second arguments. Has optional options as well. Doc
.findOneAndReplace({query}, {<replacement>}, {<options>}) Finds and replaces the document that matches the query. <replacement> cannot use update operators. Doc
Copy link

sangdth commented Apr 18, 2020

Thanks, it's really useful!

Copy link

Nice. Thank you.

Copy link

thanks for the information

Copy link

Glad this was helpful! 👍

Copy link

ptucky commented Oct 16, 2021

Great Thanks

Copy link

Fantastic! Thank you for creating this cheat sheet.

Copy link

Thank you

Copy link

Is there a way to show my cluster configuration on MongoDB Shell?

Copy link

ghost commented May 4, 2022


Copy link

thank you micheal!

Copy link

thanks. For version 6.0.7, I found

DeprecationWarning: Collection.count() is deprecated. Use countDocuments or estimatedDocumentCount.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment