DEV Community

Cover image for MongoDB cheat sheet/crash course
Arafat
Arafat

Posted on • Edited on

55 1

MongoDB cheat sheet/crash course

Here is a cheat sheet for mongodb

Basic Idea

Database: A container of collection.
Collection: Grouping of documents insida of a database. Similar tables in SQL.
Document: A record inside of a collection. Similar to row in SQL.
Field: A key value pair within a document. Similar to column in SQL.

Basic commands

mongosh: A JavaScript shell for interacting with MongoDB instances. It provides a command-line interface (CLI) that allows you to connect to a MongoDB server.
show dbs: Shows all databases in the current MongoDB instance.
use <dbname>: Switch database provided by dbname.
db: Shows current database name.
show collections: Shows all collections.
db.dropDatabase(): Deletes the current database.
exit: Exits the mongosh session.

Create

insertOne: Creates a document within the specified collection.

db.users.insertOne({ name: Arafat })
// Create a document with the name of Arafat into the users collection
Enter fullscreen mode Exit fullscreen mode

insertMany: Creates multiple documents within the specified collection.

db.users.insertMany([{ name: John }, { age: Roy }])
// Create two documents with the name John and Roy into the users collection
Enter fullscreen mode Exit fullscreen mode

Read

find: Get all documents.

db.users.find()
Enter fullscreen mode Exit fullscreen mode

find(<filterObject>): Find all documents based on the filter object

db.users.find({ name: Arafat })
// Get all users with the name Arafat
db.users.find({ address.street: 434 Lund Sweden })
// Get all users whose adress field has a street field with the value 434 Lund Sweden
Enter fullscreen mode Exit fullscreen mode

find(<filterObject>, <selectObject>): Find all documents that match the filter object but only return the field specified in the select object

db.users.find({ name: Arafat }, { name: 1, hobby: 1 })
// Get all users with the name Arafat but only return their name, hobby, and _id
db.users.find({}, { hobby: 0 })
// Get all users and return all fields except for hobby
Enter fullscreen mode Exit fullscreen mode

findOne: Returns the first document that matches the filter object.

db.users.findOne({ name: Arafat })
// Get the first user with the name Arafat
Enter fullscreen mode Exit fullscreen mode

countDocuments: Returns the count of the documents that match the filter object.

db.users.countDocuments({ name: Arafat })
// Get the number of users with the name Arafat
Enter fullscreen mode Exit fullscreen mode

Update

updateOne: Updates the first document.

db.users.updateOne({ name: "Arafat" }, { $set: { name: "Theo" } })
// Update the first user with a name of Arafat to the name of Theo
Enter fullscreen mode Exit fullscreen mode

updateMany: Updates multiple docments.

db.users.updateMany({ age: 16 }, { $inc: { age: 6 } })
// Update all users with an age of 16 by adding 6 to their age
Enter fullscreen mode Exit fullscreen mode

replaceOne: Replace the first document. This
will completely overwrite the entire object and not just
update individual fields.

db.users.replaceOne({ age: 12 }, { age: 13 })
// Replace the first user with an age of 12 with an object that has the age of 13 as its only field
Enter fullscreen mode Exit fullscreen mode

Delete

deleteOne: Delete a single document from a collection.

db.users.deleteOne({ name: "Arafat" })
// Delete the first user with an name of Arafat
Enter fullscreen mode Exit fullscreen mode

deleteMany: Delete multiple documents from a collection.

db.users.deleteMany({ age: 26 })
// Delete all users with an age of 26
Enter fullscreen mode Exit fullscreen mode

Complex Filter Object

$eq: equals.

db.users.find({ name: { $eq: Arafat } })
// Get all the users with the name Arafat
Enter fullscreen mode Exit fullscreen mode

$ne: not equal to.

db.users.find({ name: { $ne: Arafat } })
// Get all users with a name other than Kyle
Enter fullscreen mode Exit fullscreen mode

$gt / $gte: Greater than and greater than or eqal.

db.users.find({ age: { $gt: 26 } })
// Get all users with an age greater than 26
db.users.find({ age: { $gte: 34 } })
// Get all users with an age greater than or equal to 34
Enter fullscreen mode Exit fullscreen mode

$lt / $lte: Less than and less than or eqal.

db.users.find({ age: { $lt: 26 } })
// Get all users with an age less than 26
db.users.find({ age: { $lte: 34 } })
// Get all users with an age less than or equal to 34
Enter fullscreen mode Exit fullscreen mode

$in: Check if a value is one of many values.

db.users.find({ name: { $in: [Roy, Leo] } })
// Get all users with a name of Roy or Leo
Enter fullscreen mode Exit fullscreen mode

$nin: Check if a value is none of many values.

db.users.find({ name: { $nin: [Roy, Leo] } })
// Get all users that do not have the name Roy or Leo
Enter fullscreen mode Exit fullscreen mode

$and: Returns true if all expressions are true

db.users.find({ $and: [{ age: 6 }, { name: Arafat }] })
// Get all users that have an age of 6 and the name Arafat
db.users.find({ age: 6, name: Arafat })
// Alternative way to do same thing
Enter fullscreen mode Exit fullscreen mode

$or: returns true if any expression is true

db.users.find({ $or: [{ age: 6 }, { name: Arafat }] })
// Get all users that have an age of 6 or the name Arafat
Enter fullscreen mode Exit fullscreen mode

$not: Negates the expression

db.users.find({ name: { $not: { $eq: Arafat } } })
Get all users with a name other than Arafat
Enter fullscreen mode Exit fullscreen mode

$exists: Matches documents that have the specified field.

db.users.find({ name: { $exists: true } })
// Returns all users that have a name field
Enter fullscreen mode Exit fullscreen mode

$expr: performs an expression evaluation in the query.

db.users.find({ $expr: { $gt: [$balance, $debt] } })
// Get all users that have a balance that is greater than their debt
Enter fullscreen mode Exit fullscreen mode

Complex Update Object

$set: Updates only the fields passed to $set.

db.users.updateOne({ age: 12 }, { $set: { name: Roy } })
// Update the name of the first user with the age of 12 to the value Roy
Enter fullscreen mode Exit fullscreen mode

$inc: Increments the value of a field by a specified amount.

db.users.updateOne({ debt: 200 }, { $inc: { debt: 100 } })
// Add 100 to the debt of the first user with the debt of 200
db.users.updateOne({ debt: 200 }, { $inc: { debt: -100 } })
// Remove 100 from the debt of the first user with the debt of 200
Enter fullscreen mode Exit fullscreen mode

$rename: Rename a field

db.users.updateMany({}, { $rename: { loss: Profit } })
// Rename the field loss to profit for all users
Enter fullscreen mode Exit fullscreen mode

$unset: Remove a field.

db.users.updateOne({ age: 26 }, { $unset: { age: "" } })
// Remove the age field from the first user with an age of 26
Enter fullscreen mode Exit fullscreen mode

$push: Adds new elements to an array

db.users.updateMany({}, { $push: { enemy: Ria } })
// Add Ria to the enemy array for all users
Enter fullscreen mode Exit fullscreen mode

$pull: Rmoves all array elements that match a specified condition.

db.users.updateMany({}, { $pull: { enemy: Arafat } })
// Remove Mike from the friends array for all users
Enter fullscreen mode Exit fullscreen mode

Modifiers for read

sort: Sort the results of a find by the given fields.

db.users.find().sort({ debt: 1, balance: -1 })
// Returns all users sorted by name in alphabetical order and then if any duplicated names exits, sorts by age in reverse order.
Enter fullscreen mode Exit fullscreen mode

limit: Returns a specified number of documents.

db.users.find().limit(5)
// Returns the first 5 users
Enter fullscreen mode Exit fullscreen mode

skip: Skip a specified number of documents from the start.

db.users.find().skip(7)
// Skip the first 7 users when returning results. Freat for pagination when combined with limit.
Enter fullscreen mode Exit fullscreen mode

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (2)

Collapse
 
sadid369 profile image
Sadid

super help full man . thanks

Collapse
 
arafat4693 profile image
Arafat

Thanks, glad you liked it!

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay