Skip to content

Instantly share code, notes, and snippets.

@kamal-hossain
Forked from bradtraversy/mongodb_cheat_sheet.md
Last active September 4, 2021 01:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kamal-hossain/20845cd86c9e5dfe8528424c6f43072e to your computer and use it in GitHub Desktop.
Save kamal-hossain/20845cd86c9e5dfe8528424c6f43072e to your computer and use it in GitHub Desktop.
MongoDB Cheat Sheet

MongoDB Cheat Sheet

Open MongoDB in cmd (For windows)

mongo

If mongo is not recognized as an internal or external command, operable program or batch file, then do the followings from this blog

Show All Databases

show dbs

Show Current Database

db

Create Or Switch Database

use acme

Drop Database🔴

> use mydb
> db.dropDatabase()

Create Collection

db.createCollection('posts')

Show Collections

show collections

Drop Collection 🔴

> use mydb
> db.usersCollection.drop()

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 from a collection

db.posts.find()

Get All Rows from a collection Formatted

db.posts.find().pretty()

Find Rows

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

Sort Rows in a collection

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

Count Rows in a collection

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

Limit Rows in a collection

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

Chaining example

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 specific document from a collection

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

Get database size and index size in MB (Megabytes)

db.stats(1024*1024);

Export a collection in json format

mongoexport --db newdb -c usersCollection --out testBakcup.json

Import a collection from json file

mongoimport --db newdb -c usersCollectiontwo --file test.json

Export entire database including all collections (Local)

mongodump --db newdb

Export entire database including all collections (Cluster)

mongodump --uri="mongodb+srv://<Name>:<Password>@cluster0-pk6qf.mongodb.net/<DB_YOU_WANT_TO_EXPORT>?retryWrites=true&w=majority"

ref1

use --collection <collection_name> for only specific collection

Import entire database including all collections

mongorestore --db deleteme dump/newdb

newdb is the folder name that holds the database (deleteme) related files (.bson) etc. To override same document with _id use this method

Connect to cloud mongodb cluster from mongo shell

mongo "mongodb+srv://cluster0.g1re8.mongodb.net/<dbname>" --username <check_mongo_cloud_connect_shell>

Useful resources

  • MongoDB Package Components (e.g. mongoimport, mongoexport, mongodump )

https://docs.mongodb.com/manual/reference/program

Posted indev.togist.github.com

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