Skip to content

Instantly share code, notes, and snippets.

@Ronin1702
Last active September 1, 2023 00:14
Show Gist options
  • Select an option

  • Save Ronin1702/69eb0147fe04b52dd653100b02bd0d84 to your computer and use it in GitHub Desktop.

Select an option

Save Ronin1702/69eb0147fe04b52dd653100b02bd0d84 to your computer and use it in GitHub Desktop.

MongoDB Cheat Sheet

I made this cheat sheet with table of contents for easier navigation.

Table of Contents

  1. Show All Databases
  2. Show Current Database
  3. Create Or Switch Database
  4. Drop
  5. Create Collection
  6. Show Collections
  7. Insert Row
  8. Insert Multiple Rows
  9. Get All Rows
  10. Get All Rows Formatted
  11. Find Rows
  12. Sort Rows
  13. Count Rows
  14. Limit Rows
  15. Chaining
  16. Foreach
  17. Find One Row
  18. Find Specific Fields
  19. Update Row
  20. Update Specific Field
  21. Increment Field ($inc)
  22. Rename Field
  23. Delete Row
  24. Sub-Documents
  25. Find By Element in Array ($elemMatch)
  26. Add Index
  27. Text Search
  28. Greater & Less Than

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 } })

back to top

@derekmeduri
Copy link

thanks for making this useful cheatsheet! starred for later use

@Ronin1702
Copy link
Author

thanks for making this useful cheatsheet! starred for later use

Thank you for the star @derekmeduri !

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