MongoDB Cheat Sheet

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

mongodump --db newdb

use --collection <collection_name> for only specific collection

Import entire database including all collections

mongorestore --db deleteme dump/newdb

Connect to cloud mongodb cluster from mongo shell

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

Useful resources

Posted indev.togist.github.com