Skip to content

Instantly share code, notes, and snippets.

@bradtraversy
Last active April 11, 2024 09:54
Show Gist options
  • Save bradtraversy/f407d642bdc3b31681bc7e56d95485b6 to your computer and use it in GitHub Desktop.
Save bradtraversy/f407d642bdc3b31681bc7e56d95485b6 to your computer and use it in GitHub Desktop.
MongoDB Cheat Sheet

MongoDB Cheat Sheet

Show All Databases

show dbs

Show Current Database

db

Create Or Switch Database

use acme

Drop

db.dropDatabase()

Create Collection

db.createCollection('posts')

Show Collections

show collections

Insert Row

db.posts.insert({
  title: 'Post One',
  body: 'Body of post one',
  category: 'News',
  tags: ['news', 'events'],
  user: {
    name: 'John Doe',
    status: 'author'
  },
  date: Date()
})

Insert Multiple Rows

db.posts.insertMany([
  {
    title: 'Post Two',
    body: 'Body of post two',
    category: 'Technology',
    date: Date()
  },
  {
    title: 'Post Three',
    body: 'Body of post three',
    category: 'News',
    date: Date()
  },
  {
    title: 'Post Four',
    body: 'Body of post three',
    category: 'Entertainment',
    date: Date()
  }
])

Get All Rows

db.posts.find()

Get All Rows Formatted

db.posts.find().pretty()

Find Rows

db.posts.find({ category: 'News' })

Sort Rows

# asc
db.posts.find().sort({ title: 1 }).pretty()
# desc
db.posts.find().sort({ title: -1 }).pretty()

Count Rows

db.posts.find().count()
db.posts.find({ category: 'news' }).count()

Limit Rows

db.posts.find().limit(2).pretty()

Chaining

db.posts.find().limit(2).sort({ title: 1 }).pretty()

Foreach

db.posts.find().forEach(function(doc) {
  print("Blog Post: " + doc.title)
})

Find One Row

db.posts.findOne({ category: 'News' })

Find Specific Fields

db.posts.find({ title: 'Post One' }, {
  title: 1,
  author: 1
})

Update Row

db.posts.update({ title: 'Post Two' },
{
  title: 'Post Two',
  body: 'New body for post 2',
  date: Date()
},
{
  upsert: true
})

Update Specific Field

db.posts.update({ title: 'Post Two' },
{
  $set: {
    body: 'Body for post 2',
    category: 'Technology'
  }
})

Increment Field ($inc)

db.posts.update({ title: 'Post Two' },
{
  $inc: {
    likes: 5
  }
})

Rename Field

db.posts.update({ title: 'Post Two' },
{
  $rename: {
    likes: 'views'
  }
})

Delete Row

db.posts.remove({ title: 'Post Four' })

Sub-Documents

db.posts.update({ title: 'Post One' },
{
  $set: {
    comments: [
      {
        body: 'Comment One',
        user: 'Mary Williams',
        date: Date()
      },
      {
        body: 'Comment Two',
        user: 'Harry White',
        date: Date()
      }
    ]
  }
})

Find By Element in Array ($elemMatch)

db.posts.find({
  comments: {
     $elemMatch: {
       user: 'Mary Williams'
       }
    }
  }
)

Add Index

db.posts.createIndex({ title: 'text' })

Text Search

db.posts.find({
  $text: {
    $search: "\"Post O\""
    }
})

Greater & Less Than

db.posts.find({ views: { $gt: 2 } })
db.posts.find({ views: { $gte: 7 } })
db.posts.find({ views: { $lt: 7 } })
db.posts.find({ views: { $lte: 7 } })
@jimjam-13
Copy link

Thanks for the cheatsheet bro.

@ccf19881030
Copy link

Thanks! It's very helpful for me.

@lewisc99
Copy link

thanks a lot hehe

Copy link

ghost commented Sep 27, 2021

These kinds of summaries or cheat sheets are really helpful.
Thank you, bro.

@saddam734
Copy link

Thank You BRAD

@tengine8000
Copy link

Thank you Brad. God bless your work!

@Sourav-1234
Copy link

Thank you Sir Inspiration

@anish72
Copy link

anish72 commented Dec 15, 2021

Thank you so much....!!

@ahmedabukar01
Copy link

thank you so much brad. we appreciate you

@dmwambua
Copy link

dmwambua commented Jan 9, 2022

thanks

@gerald-encabo
Copy link

Its 2022 and still very helpful, thank you!!!

@miShelbyT
Copy link

Ditto what @geraldencabo said. Your instructional videos and other materials are a Godsend. Thank you!!!

@ameerhamza0403
Copy link

Thanks

@mrtushartiwari
Copy link

Awesome for quick reference.

@KMaleesha
Copy link

Thank you sir

@SilasRodrigues19
Copy link

Thank you bro

@ispravnic
Copy link

Thank you!

@Shehanx86
Copy link

Thank you <3

@YitayalT
Copy link

YitayalT commented Apr 1, 2022

thank you!

@connectwithKrishnadas
Copy link

👏👏👏

@priyanka657
Copy link

thanks

@Owais28
Copy link

Owais28 commented May 31, 2022

Amazing!! Thank you brother @bradtraversy 😎

@SumeetP96
Copy link

Great reference for beginners. Thank you very much @bradtraversy

@ShandanaShahid
Copy link

thankyou.. this cheat sheet is for which version of mongo... can anyone tell please?

@OmarSawalmeh
Copy link

Thanks

@luizfernandorabelo
Copy link

thankyou.. this cheat sheet is for which version of mongo... can anyone tell please?

This cheat sheet is related to MongoDB 4.0.10 version

@Eugene-Mokrushin
Copy link

Thanks!

@famartinez
Copy link

Awesome, thank you!

@datmt
Copy link

datmt commented Aug 23, 2022

Thanks! I also created some cheat sheets here covering crud/aggregation too https://datmt.com/series/mongodb-cheat-sheets/

@Richard-vinu
Copy link

thank you!

@rohit-patel-azilen
Copy link

Thank you very much!..A great reference for beginners.

@RiyaadHossain
Copy link

Thank a lot

@1002jpvc
Copy link

Thank You BRAD

@ShandanaShahid
Copy link

Thankyou

@Ogden777
Copy link

Ogden777 commented Nov 7, 2022

Сенкью

@phieraditya
Copy link

Thank you @bradtraversy

I use mongosh with MongoDB 6.0.1, and some methods in the cheat sheet are deprecated. Here is what works with my version:

Get All Rows Formatted

db.posts.find()

already formatted without pretty()

Count Rows

db.posts.countDocuments()
db.posts.countDocuments({ category: ‘News' });

count() is deprecated

Update Specific Field

db.posts.updateOne({ title: 'Post Two' },
{
  $set: {
    body: 'Body for post 2',
    category: 'Technology'
  }
})

update() is deprecated

Delete Row

db.posts.deleteOne({ title: 'Post Four' })

remove() is deprecated

@fughesi
Copy link

fughesi commented Nov 16, 2022

Epstein didn't kill himself

@Raj-Dave-1
Copy link

Thank You!

@pxzxj
Copy link

pxzxj commented Dec 1, 2022

Thank You!

@sabriallegui
Copy link

thank you!

@LoaiMasri1
Copy link

LoaiMasri1 commented Jan 1, 2023

Thank You!

@Yehan20
Copy link

Yehan20 commented Jan 11, 2023

Thanks sir

@Haideraliamjad
Copy link

Thanks for this amazing documentation

@glebstrunnikov
Copy link

I'm not sure why but the thing with text search by index doesn't work, I even tried to use the exact same commands as in this sheet, but on
db.posts.createIndex({ title: 'text' })
i get just
title_text
and then

db.friends.find({
    $text: {
        $search: "\"V\""
    }
})

gives me an empty line. I'm using the mongosh 1.6.2.0 version

Thanks for a great tutorial anyway

@hilako
Copy link

hilako commented Feb 26, 2023

Small fixes I've made to this great document:
https://gist.github.com/hilako/d6217d7c64980eee424262a0d8ad0973
Thanks :-)

@Pawanxyz
Copy link

Nice

@Mukul9913
Copy link

nice

@thegreatmick1975
Copy link

Awesome thank you

@MamadouAlySy
Copy link

thanks a lot :)

@eren-1234-yeager
Copy link

This help me a lot :)

@projectsworldx
Copy link

Just plain and simple.. Loved it

@Richard-vinu
Copy link

nice

@MoeinDeveloper92
Copy link

I am really thankful for living at this period of the history. Life by means of people like Brad is more beautiful.

@bhartik021
Copy link

Index Management:

MongoDB allows you to manage indexes to improve query performance. You can list and drop indexes on collections.

List Indexes:
db.posts.getIndexes()

Drop Index:
db.posts.dropIndex({ title: 1 })

@Muhammad-Qzih
Copy link

Thanks!

@sandesh300
Copy link

good work

@kendali
Copy link

kendali commented Dec 27, 2023

thank you

@davidwr
Copy link

davidwr commented Feb 12, 2024

Very helpful, thanks!

@Sumit-Thakkar
Copy link

thank you

@ManasShettigar
Copy link

Please do consider this too with some updates:
https://gist.github.com/ManasShettigar/4fb654b68136c040ae7bf2f7e489808c

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