DEV Community

Millie Molotov
Millie Molotov

Posted on

MongoDB Command Shortcuts: The Ultimate Guide

This post is a comprehensive guide to the most important MongoDB commands and operations. It covers basic queries, CRUD operations, indexing, aggregation, and more advanced concepts.


1. MongoDB Basics

Connecting to MongoDB

mongo --host <hostname> --port <port> -u <username> -p <password> --authenticationDatabase <authDB>
Enter fullscreen mode Exit fullscreen mode

Show Databases

show dbs;
Enter fullscreen mode Exit fullscreen mode

Use a Database

use myDatabase;
Enter fullscreen mode Exit fullscreen mode

Show Collections

show collections;
Enter fullscreen mode Exit fullscreen mode

2. CRUD Operations

Create a Collection

db.createCollection("myCollection");
Enter fullscreen mode Exit fullscreen mode

Insert Documents

db.myCollection.insertOne({ name: "John", age: 30 });
db.myCollection.insertMany([{ name: "Jane", age: 25 }, { name: "Doe", age: 22 }]);
Enter fullscreen mode Exit fullscreen mode

Read Documents

db.myCollection.find();
db.myCollection.find({ name: "John" });
Enter fullscreen mode Exit fullscreen mode

Update Documents

db.myCollection.updateOne({ name: "John" }, { $set: { age: 31 } });
db.myCollection.updateMany({ age: { $lt: 30 } }, { $set: { status: "young" } });
Enter fullscreen mode Exit fullscreen mode

Delete Documents

db.myCollection.deleteOne({ name: "John" });
db.myCollection.deleteMany({ age: { $lt: 25 } });
Enter fullscreen mode Exit fullscreen mode

3. Querying Documents

Basic Queries

db.myCollection.find({ name: "John" });
db.myCollection.find({ age: { $gt: 25 } });
Enter fullscreen mode Exit fullscreen mode

Projection

db.myCollection.find({}, { name: 1, age: 1 });
Enter fullscreen mode Exit fullscreen mode

Sorting

db.myCollection.find().sort({ age: -1 });
Enter fullscreen mode Exit fullscreen mode

Limiting and Skipping

db.myCollection.find().limit(5);
db.myCollection.find().skip(5).limit(5);
Enter fullscreen mode Exit fullscreen mode

4. Updating Documents

Update Operators

  • $set: Sets the value of a field
db.myCollection.updateOne({ name: "John" }, { $set: { age: 31 } });
Enter fullscreen mode Exit fullscreen mode
  • $unset: Removes a field
db.myCollection.updateOne({ name: "John" }, { $unset: { age: "" } });
Enter fullscreen mode Exit fullscreen mode
  • $inc: Increments the value of a field
db.myCollection.updateOne({ name: "John" }, { $inc: { age: 1 } });
Enter fullscreen mode Exit fullscreen mode
  • $push: Adds an item to an array
db.myCollection.updateOne({ name: "John" }, { $push: { hobbies: "reading" } });
Enter fullscreen mode Exit fullscreen mode

5. Deleting Documents

Delete Operators

  • deleteOne: Deletes a single document
db.myCollection.deleteOne({ name: "John" });
Enter fullscreen mode Exit fullscreen mode
  • deleteMany: Deletes multiple documents
db.myCollection.deleteMany({ age: { $lt: 25 } });
Enter fullscreen mode Exit fullscreen mode

6. Indexes

Creating Indexes

db.myCollection.createIndex({ name: 1 });
Enter fullscreen mode Exit fullscreen mode

Viewing Indexes

db.myCollection.getIndexes();
Enter fullscreen mode Exit fullscreen mode

Dropping Indexes

db.myCollection.dropIndex("name_1");
Enter fullscreen mode Exit fullscreen mode

7. Aggregation

Basic Aggregation

db.myCollection.aggregate([
    { $match: { status: "active" } },
    { $group: { _id: "$age", total: { $sum: 1 } } }
]);
Enter fullscreen mode Exit fullscreen mode

Common Aggregation Stages

  • $match: Filters documents
{ $match: { status: "active" } }
Enter fullscreen mode Exit fullscreen mode
  • $group: Groups documents by a specified field
{ $group: { _id: "$age", total: { $sum: 1 } } }
Enter fullscreen mode Exit fullscreen mode
  • $sort: Sorts documents
{ $sort: { total: -1 } }
Enter fullscreen mode Exit fullscreen mode
  • $project: Reshapes documents
{ $project: { name: 1, age: 1 } }
Enter fullscreen mode Exit fullscreen mode

8. Data Modeling

Embedding Documents

let post = {
    title: "Post Title",
    content: "Post Content",
    comments: [
        { user: "John", comment: "Great post!" },
        { user: "Jane", comment: "Thanks for sharing!" }
    ]
};
Enter fullscreen mode Exit fullscreen mode

Referencing Documents

let user = { name: "John" };
let post = { title: "Post Title", content: "Post Content", userId: user._id };
Enter fullscreen mode Exit fullscreen mode

9. Replication

Setting Up a Replica Set

rs.initiate();
rs.add("mongodb1.example.net:27017");
rs.add("mongodb2.example.net:27017");
rs.add("mongodb3.example.net:27017");
Enter fullscreen mode Exit fullscreen mode

Checking Replica Set Status

rs.status();
Enter fullscreen mode Exit fullscreen mode

10. Sharding

Enabling Sharding

sh.enableSharding("myDatabase");
Enter fullscreen mode Exit fullscreen mode

Sharding a Collection

sh.shardCollection("myDatabase.myCollection", { shardKey: 1 });
Enter fullscreen mode Exit fullscreen mode

11. Transactions

Starting a Transaction

const session = db.getMongo().startSession();
session.startTransaction();
Enter fullscreen mode Exit fullscreen mode

Committing a Transaction

session.commitTransaction();
session.endSession();
Enter fullscreen mode Exit fullscreen mode

Aborting a Transaction

session.abortTransaction();
session.endSession();
Enter fullscreen mode Exit fullscreen mode

12. Security

Creating a User

db.createUser({
    user: "myUser",
    pwd: "myPassword",
    roles: [{ role: "readWrite", db: "myDatabase" }]
});
Enter fullscreen mode Exit fullscreen mode

Authenticating a User

db.auth("myUser", "myPassword");
Enter fullscreen mode Exit fullscreen mode

13. Best Practices

  • Use Indexes: Ensure that your queries are efficient by using indexes.
  • Data Modeling: Choose the right data model (embedding vs. referencing) based on your use case.
  • Backup Regularly: Regularly backup your data to prevent data loss.
  • Monitor Performance: Use monitoring tools to keep an eye on the performance of your MongoDB instance.
  • Secure Your Database: Implement proper authentication and authorization mechanisms.

Conclusion

This post summarizes key concepts, commands, and operations for working with MongoDB. Keep this as a quick reference while you're working with MongoDB!

Top comments (0)