Skip to content

Instantly share code, notes, and snippets.

@vavajig
Forked from bradtraversy/mongodb_cheat_sheet.md
Created July 29, 2020 21:10
Show Gist options
  • Save vavajig/fb178fccd979707d69f7c846cbf609c8 to your computer and use it in GitHub Desktop.
Save vavajig/fb178fccd979707d69f7c846cbf609c8 to your computer and use it in GitHub Desktop.

Revisions

  1. @bradtraversy bradtraversy revised this gist Oct 11, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion mongodb_cheat_sheet.md
    Original file line number Diff line number Diff line change
    @@ -228,7 +228,7 @@ db.posts.update({ title: 'Post One' },
    db.posts.find({
    comments: {
    $elemMatch: {
    author: 'Mary Williams'
    user: 'Mary Williams'
    }
    }
    }
  2. @bradtraversy bradtraversy created this gist Jul 16, 2019.
    261 changes: 261 additions & 0 deletions mongodb_cheat_sheet.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,261 @@
    # 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.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: {
    author: '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 } })
    ```