<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ahmed Afzal</title>
    <description>The latest articles on DEV Community by Ahmed Afzal (@ahmed_afzal).</description>
    <link>https://dev.to/ahmed_afzal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3338847%2Fe5fe445d-bbbf-4ac4-9243-0b74573bac7e.png</url>
      <title>DEV Community: Ahmed Afzal</title>
      <link>https://dev.to/ahmed_afzal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ahmed_afzal"/>
    <language>en</language>
    <item>
      <title>MongoDB with Mongoose: Schema Design, CRUD Operations &amp; Validations (Part 2)</title>
      <dc:creator>Ahmed Afzal</dc:creator>
      <pubDate>Sun, 20 Jul 2025 15:59:19 +0000</pubDate>
      <link>https://dev.to/ahmed_afzal/mongodb-with-mongoose-schema-design-crud-operations-validations-part-2-2oc6</link>
      <guid>https://dev.to/ahmed_afzal/mongodb-with-mongoose-schema-design-crud-operations-validations-part-2-2oc6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Before diving in, make sure you’ve read &lt;a href="https://dev.to/ahmed_afzal/mongodb-essentials-a-beginners-guide-to-nosql-databases-part-1-28ch"&gt;Part 1&lt;/a&gt; of this series, where we explore what MongoDB is, its document-based structure, and why it's different from relational databases.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In &lt;strong&gt;Part 1&lt;/strong&gt;, we explored the foundations of MongoDB — a NoSQL, document-oriented database. Now in &lt;strong&gt;Part 2&lt;/strong&gt;, we’ll take the next step by learning how to interact with MongoDB using &lt;strong&gt;Mongoose&lt;/strong&gt;, a powerful ODM (Object Data Modeling) library for Node.js. We'll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Schema design in MongoDB&lt;/li&gt;
&lt;li&gt;Data types and relationships&lt;/li&gt;
&lt;li&gt;Setting up Mongoose&lt;/li&gt;
&lt;li&gt;CRUD operations&lt;/li&gt;
&lt;li&gt;Validations in Mongoose&lt;/li&gt;
&lt;li&gt;Key methods like &lt;code&gt;.save()&lt;/code&gt;, &lt;code&gt;.find()&lt;/code&gt;, &lt;code&gt;.findById()&lt;/code&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s dive in! 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;1. Understanding Schema-less Nature of MongoDB&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔹 What is a Schema?
&lt;/h3&gt;

&lt;p&gt;In relational databases like MySQL or PostgreSQL, a &lt;strong&gt;schema&lt;/strong&gt; defines the structure of tables, columns, and their relationships. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Student&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Course&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Section&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoxjs11ewqe8b9roduf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyoxjs11ewqe8b9roduf0.png" alt="Relational Database Schema Example" width="238" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each has a strict format and is connected through &lt;strong&gt;foreign keys&lt;/strong&gt;. If you want to change the structure (add a new field), you need to alter the schema manually.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 This strict structure enforces consistency but reduces flexibility.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔹 MongoDB is Schema-less
&lt;/h3&gt;

&lt;p&gt;MongoDB doesn’t enforce any schema. Instead, it stores data in &lt;strong&gt;JSON-like documents&lt;/strong&gt;, making it highly flexible and scalable.&lt;/p&gt;

&lt;p&gt;For example, this is perfectly valid in MongoDB:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ahmed Afzal"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can add more fields later without modifying the existing schema. However, this &lt;strong&gt;doesn't mean&lt;/strong&gt; we should store data in a disorganized way. &lt;strong&gt;Best practice:&lt;/strong&gt; define a logical document structure for consistency.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;2. Data Types in MongoDB&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Like all databases, MongoDB supports different data types:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;String&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "name": "Ahmed" }&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;{ "age": 25 }&lt;/code&gt;, &lt;code&gt;{ "price": 99.99 }&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Boolean&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "isActive": true }&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Date&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "createdAt": ISODate("2025-07-07T00:00:00Z") }&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Array&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "skills": ["React", "Node.js"] }&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Object&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "address": { "city": "Karachi", "country": "Pakistan" } }&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Null&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "middleName": null }&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;3. Embedded vs Referenced Documents&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;MongoDB allows you to structure related data in two ways:&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Embedded Documents (Denormalized)
&lt;/h3&gt;

&lt;p&gt;Nested documents inside a parent document.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Intro to MongoDB"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"comments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ali"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Great post!"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Sara"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Helpful!"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Benefits&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fast reads&lt;/li&gt;
&lt;li&gt;Fewer queries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Documents can become large (max 16MB)&lt;/li&gt;
&lt;li&gt;Harder to update deeply nested data&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🔗 Referenced Documents (Normalized)
&lt;/h3&gt;

&lt;p&gt;Separate documents linked by IDs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Blog&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Intro to MongoDB"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"comments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;102&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Comments&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Collection&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"postId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Nice Article"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;102&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"postId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Great Concept"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Benefits&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More scalable&lt;/li&gt;
&lt;li&gt;Reusable data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Drawbacks&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slower reads due to multiple queries&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;4. Relationships in MongoDB&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ➤ One-to-One (1:1)
&lt;/h3&gt;

&lt;p&gt;Each document relates to one other.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// User
{ "_id": 101, "name": "Ahmed" }

// Profile
{ "_id": 1, "userId": 101, "bio": "Engineer" }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ➤ One-to-Many (1:N)
&lt;/h3&gt;

&lt;p&gt;One document relates to many others.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Author
{ "_id": 1, "name": "Ahmed" }

// Books
[
  { "_id": 101, "authorId": 1, "title": "Book A" },
  { "_id": 102, "authorId": 1, "title": "Book B" }
]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ➤ Many-to-Many (M:N)
&lt;/h3&gt;

&lt;p&gt;Both documents relate to many others.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Student
{ "_id": 1, "name": "Ahmed", "enrolledCourses": [101, 102] }

// Courses
{ "_id": 101, "title": "React JS", "students": [1, 2] }

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;5. What is Mongoose and Why Use It?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Mongoose is an ODM library for Node.js that helps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enforce structure (via schemas)&lt;/li&gt;
&lt;li&gt;Apply validations&lt;/li&gt;
&lt;li&gt;Easily perform CRUD operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without Mongoose, MongoDB allows unstructured data — e.g., inserting a string into a number field would still work. Mongoose prevents that.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;6. Setting Up Mongoose in Node.js&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;Install Node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ensure MongoDB is running locally (&lt;code&gt;mongod&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Optionally use MongoDB Compass&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📁 Folder Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mongoose-app/
├── models/
│   └── User.js
├── app.js

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📦 Initialize Project
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;mongoose-app
&lt;span class="nb"&gt;cd &lt;/span&gt;mongoose-app
npm init &lt;span class="nt"&gt;-y&lt;/span&gt;
npm &lt;span class="nb"&gt;install &lt;/span&gt;mongoose

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔌 Connect to MongoDB
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// app.js
const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/mydb', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
})
.then(() =&amp;gt; console.log("Connected to MongoDB"))
.catch((err) =&amp;gt; console.error("Connection error:", err));

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;7. Creating Schemas and Models&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// models/User.js
const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  name: String,
  age: Number,
});

const User = mongoose.model('User', userSchema);

module.exports = User;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;8. CRUD Operations in Mongoose&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  📌 Create
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const ahmed = new User({ name: "Ahmed", age: 25 });
ahmed.save();

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📌 Read
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User.find().then(users =&amp;gt; console.log(users));

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📌 Update
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User.updateOne({ name: "Ahmed" }, { age: 30 });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  📌 Delete
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User.deleteOne({ name: "Ahmed" });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ✅ Full Example (&lt;code&gt;app.js&lt;/code&gt;)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const mongoose = require('mongoose');
const User = require('./models/User');

mongoose.connect('mongodb://localhost:27017/mydb', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
})
.then(async () =&amp;gt; {
  console.log("Connected to MongoDB");

  // Create
  const user = new User({ name: "Ahmed", age: 22 });
  await user.save();

  // Read
  const users = await User.find();
  console.log(users);

  // Update
  await User.updateOne({ name: "Ahmed" }, { age: 30 });

  // Delete
  await User.deleteOne({ name: "Ahmed" });

  mongoose.disconnect();
})
.catch(console.error);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;9. Mongoose Validations&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Without validation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const user = new User({ name: 123, age: "abc" }); // Allowed!

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With validation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const userSchema = new mongoose.Schema({
  name: { type: String, required: true, minlength: 3 },
  age: { type: Number, required: true, min: 18, max: 60 },
  email: { type: String, required: true, match: /.+\@.+\..+/ }
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ✨ Example:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const user = new User({
  name: "Ah",    // too short
  age: 17,       // too young
  email: "invalidemail"
});

user.save().catch(err =&amp;gt; console.log("Validation Error:", err.message));

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  🔧 Other Validation Options
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Validator&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;required&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Must be present&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;min&lt;/code&gt; / &lt;code&gt;max&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Numbers only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;minlength&lt;/code&gt; / &lt;code&gt;maxlength&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;String length&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;match&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Regex pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;enum&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limited values&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;status: {
  type: String,
  enum: ['active', 'inactive', 'pending'],
  default: 'pending'
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;10. Mongoose Query Methods Explained&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.save()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save new document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.find()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get all or filtered documents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.findOne()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get one document&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.findById()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Get by ObjectId&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.updateOne()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update first match&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.findByIdAndUpdate()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Update by ID and return updated doc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.deleteOne()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete first match&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.findByIdAndDelete()&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Delete by ID&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In this part, you learned how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand MongoDB’s flexible data model&lt;/li&gt;
&lt;li&gt;Use embedded and referenced documents&lt;/li&gt;
&lt;li&gt;Create and validate schemas using Mongoose&lt;/li&gt;
&lt;li&gt;Perform full CRUD operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔁 &lt;strong&gt;If you haven't already&lt;/strong&gt;, read &lt;a href="https://dev.to/ahmed_afzal/mongodb-essentials-a-beginners-guide-to-nosql-databases-part-1-28ch"&gt;Part 1 here&lt;/a&gt; to better understand MongoDB fundamentals.&lt;/p&gt;




&lt;h3&gt;
  
  
  👉 Coming Up Next (Part 3 – Final Part):
&lt;/h3&gt;

&lt;p&gt;In the next article, we’ll explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Relationships using &lt;code&gt;populate()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Advanced queries and filtering&lt;/li&gt;
&lt;li&gt;Indexing for performance&lt;/li&gt;
&lt;li&gt;Aggregation framework&lt;/li&gt;
&lt;li&gt;Project structure best practices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stay tuned! 🎯&lt;/p&gt;

</description>
    </item>
    <item>
      <title>MongoDB Made Easy: A Beginner’s Practical Guide (Part 1)</title>
      <dc:creator>Ahmed Afzal</dc:creator>
      <pubDate>Wed, 09 Jul 2025 13:36:10 +0000</pubDate>
      <link>https://dev.to/ahmed_afzal/mongodb-essentials-a-beginners-guide-to-nosql-databases-part-1-28ch</link>
      <guid>https://dev.to/ahmed_afzal/mongodb-essentials-a-beginners-guide-to-nosql-databases-part-1-28ch</guid>
      <description>&lt;p&gt;Welcome to your first step into the world of MongoDB! If you’ve ever felt overwhelmed by traditional SQL databases, or you're looking for something more flexible for your next project — you’re in the right place. In this guide, we’ll break down MongoDB in a super simple, practical, and beginner-friendly way. By the end of this article, you'll not only understand MongoDB, but you'll also perform real CRUD operations using both code and visual tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What is MongoDB?
&lt;/h2&gt;

&lt;p&gt;MongoDB is an &lt;strong&gt;open-source, document-oriented NoSQL database&lt;/strong&gt;. Unlike traditional relational databases that store data in tables, rows, and columns, MongoDB stores data in &lt;strong&gt;documents and collections&lt;/strong&gt;, making it more flexible and scalable.&lt;/p&gt;

&lt;p&gt;Each document in MongoDB is a &lt;strong&gt;JSON-like structure&lt;/strong&gt; (called BSON internally), which allows you to store structured or unstructured data as key-value pairs. BSON makes it easier for machines to understand and process data quickly.&lt;/p&gt;




&lt;h2&gt;
  
  
  📄 Understanding MongoDB Structure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🧾 Document:
&lt;/h3&gt;

&lt;p&gt;A document is a &lt;strong&gt;single unit of data&lt;/strong&gt; in MongoDB, similar to a row in SQL but stored in a JSON-like format.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;_id:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"abc123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;title:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Post Title 1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;body:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Body of post."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;category:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"News"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;likes:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;tags:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"news"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"events"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;date:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Date()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;_id&lt;/code&gt; is auto-generated by MongoDB using &lt;code&gt;ObjectId&lt;/code&gt;. You can use it to fetch, update, or delete that specific document.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📦 Collection:
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;collection is a group of documents&lt;/strong&gt;, like an array of objects or a table in SQL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Collection:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;articles&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;title:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Post 1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;author:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ahmed"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;title:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Post 2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;author:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Sara"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each collection can store multiple documents with different structures.&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 Installing MongoDB Locally
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1️⃣ Go to MongoDB Download Page
&lt;/h3&gt;

&lt;p&gt;👉 &lt;a href="https://www.mongodb.com/try/download/community" rel="noopener noreferrer"&gt;https://www.mongodb.com/try/download/community&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2️⃣ Select Platform
&lt;/h3&gt;

&lt;p&gt;Choose Windows, macOS, or Linux. For Windows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Version: MongoDB Community Server&lt;/li&gt;
&lt;li&gt;OS: Windows&lt;/li&gt;
&lt;li&gt;Package: MSI Installer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click &lt;strong&gt;Download&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Below you can see the MongoDB download page and installer setup selection.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhp5hvbpuoebdp7m1826a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhp5hvbpuoebdp7m1826a.png" alt="MongoDB Download page" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3️⃣ Install MongoDB
&lt;/h3&gt;

&lt;p&gt;Run the downloaded installer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose &lt;strong&gt;Complete&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;✅ Check “Install MongoDB Compass” (GUI tool)&lt;/li&gt;
&lt;li&gt;Finish setup&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4️⃣ Verify Installation
&lt;/h3&gt;

&lt;p&gt;Open your terminal or command prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;mongosh&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;“📸 Below is the output you’ll see if MongoDB is installed correctly.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc245w3t00iiwiir7pftn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc245w3t00iiwiir7pftn.png" alt="MongoDB shell output after running a command using mongosh" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it opens the MongoDB shell, you're all set!&lt;/p&gt;

&lt;h3&gt;
  
  
  5️⃣ Optional: Install MongoDB Compass
&lt;/h3&gt;

&lt;p&gt;Download: &lt;a href="https://www.mongodb.com/try/download/compass" rel="noopener noreferrer"&gt;https://www.mongodb.com/try/download/compass&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compass provides a graphical interface to view and manipulate your data — like phpMyAdmin for MongoDB.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Creating a Database and Collection
&lt;/h2&gt;

&lt;p&gt;Launch your terminal and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;mongosh&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll be connected to the local MongoDB instance.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;use&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;blogDB&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This switches to &lt;code&gt;blogDB&lt;/code&gt; or creates it when you insert data.&lt;/p&gt;

&lt;h3&gt;
  
  
  ➕ Insert One Document
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;db.articles.insertOne(&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;title:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"How to Use MongoDB"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;author:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ahmed Afzal"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;content:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"This is my first blog post."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;category:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Database"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;tags:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"mongodb"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"beginner"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;published:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;date:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Date()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Breakdown:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;db&lt;/code&gt; = current database&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;articles&lt;/code&gt; = collection&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;insertOne&lt;/code&gt; = insert 1 document&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📸 &lt;em&gt;Below you can see the image showing how MongoDB confirms the inserted document with an ObjectId.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakm1iyzhxnddqp53b3ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakm1iyzhxnddqp53b3ku.png" alt="MongoDB shell output after inserting a document using insertOne()" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ➕ Insert Multiple Documents
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.articles.insertMany([
  { title: "Post 1", author: "Ahmed", tags: ["tech", "mongodb"] },
  { title: "Post 2", author: "Sara", tags: ["javascript", "nodejs"] },
  { title: "Post 3", author: "Ali", tags: ["nosql", "database"] }
])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4kx079y8z794bk9t2ne.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4kx079y8z794bk9t2ne.png" alt="MongoDB shell output after inserting a documents using insertMany()" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 Finding &amp;amp; Filtering Data
&lt;/h2&gt;

&lt;h3&gt;
  
  
  📄 View All Documents
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.articles.find().pretty()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.find()&lt;/code&gt; = get all documents&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.pretty()&lt;/code&gt; = display in a clean format&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;“Below you can see all the inserted data displayed in a clean format”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5lewsnhfic1l095lk0rj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5lewsnhfic1l095lk0rj.png" alt="MongoDB shell output after displaying a document using find()" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔎 Filtering
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Find all articles by Ahmed
db.articles.find({ author: "Ahmed" })

// Find all published articles
db.articles.find({ published: true })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;“📸 Here’s an example of how filtered data appears using the find command.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cbrvx11wwqrcvo7phfn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3cbrvx11wwqrcvo7phfn.png" alt="MongoDB shell output after filtering a document using find()" width="720" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Projections (Show/Hide Fields)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Show only title and author
db.articles.find(
  { published: true },
  { title: 1, author: 1, _id: 0 }
)

// Hide 'content' field
db.articles.find({}, { content: 0 })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔄 Updating Documents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✏️ &lt;code&gt;updateOne()&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.articles.updateOne(
  { author: "Ahmed" },
  { $set: { published: false } }
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Updates the first article by Ahmed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“📸 Below is the terminal output after running an updateOne operation.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2For2u0wikvg6wran1jynk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2For2u0wikvg6wran1jynk.png" alt="MongoDB shell output after updating a document using iupdateOne()" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✏️ &lt;code&gt;updateMany()&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.articles.updateMany(
  { published: true },
  { $set: { category: "Tech" } }
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Updates all published articles.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“📸 Below is the terminal output after running an updateMany operation.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyyqotc877use4t4v2i66.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyyqotc877use4t4v2i66.png" alt="MongoDB shell output after updating all documents using updateMany()" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🔧 Common Update Operators
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;$set&lt;/code&gt; → Set or update a value&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$inc&lt;/code&gt; → Increment a number&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$unset&lt;/code&gt; → Remove a field&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$push&lt;/code&gt; → Add to array&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$addToSet&lt;/code&gt; → Add if not already present&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🗑️ Deleting Documents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ❌ &lt;code&gt;deleteOne()&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.articles.deleteOne({ author: "Ahmed" })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deletes the first document where author is Ahmed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“📸 Below is the terminal output after running an deleteOne operation.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcwpofqwbfuq25lya3vs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcwpofqwbfuq25lya3vs.png" alt="MongoDB shell output after deleting a document using deleteOne()" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ❌ &lt;code&gt;deleteMany()&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.articles.deleteMany({ published: false })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deletes all documents where &lt;code&gt;published&lt;/code&gt; is false.&lt;/p&gt;

&lt;p&gt;⚠️ &lt;code&gt;deleteMany({})&lt;/code&gt; will delete everything in the collection — use with care!&lt;/p&gt;




&lt;h2&gt;
  
  
  🆔 Working with ObjectId
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ObjectId("66a3f20c8ae6c5f5f9637a5d")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Used to uniquely identify documents&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧭 Use ObjectId in Queries
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Find by ID
db.articles.find({ _id: ObjectId("66a3f20c8ae6c5f5f9637a5d") })

// Update by ID
db.articles.updateOne(
  { _id: ObjectId("66a3f20c8ae6c5f5f9637a5d") },
  { $set: { title: "Updated Title" } }
)

// Delete by ID
db.articles.deleteOne({ _id: ObjectId("66a3f20c8ae6c5f5f9637a5d") })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqpvjm42imgqcyvvyijmf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqpvjm42imgqcyvvyijmf.png" alt="MongoDB shell output after perfoming operation using _id" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎯 &lt;em&gt;Above you can review how &lt;code&gt;_id&lt;/code&gt;&lt;/em&gt; helps in exact targeting of operations.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧭 Using MongoDB Compass (GUI Method)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7v6ni0g9gurjp55vj1gb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7v6ni0g9gurjp55vj1gb.png" alt="Creating a new connection in MongoDB Compass" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 1. Open Compass &amp;amp; Connect
&lt;/h3&gt;

&lt;p&gt;Click on Add New Connection&lt;/p&gt;

&lt;p&gt;Paste: &lt;code&gt;mongodb://localhost:27017&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;than click &lt;strong&gt;Save &amp;amp; Connect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyk97jjk81qxanw5jtclg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyk97jjk81qxanw5jtclg.png" alt="Connect at mongodb://localhost:27017 in MongoDB Compass" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 2. Create Database &amp;amp; Collection
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Click “Create Database”&lt;/li&gt;
&lt;li&gt;Name: &lt;code&gt;blogDB&lt;/code&gt;, Collection: &lt;code&gt;articles&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0odriao3j7hs4ynezgc0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0odriao3j7hs4ynezgc0.png" alt="Creating a new database and collection in MongoDB Compass" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 3. Insert Document
&lt;/h3&gt;

&lt;p&gt;Click “Insert Document” → Paste your JSON → Click Insert&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwzamxvnp2ejf76yslwvt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwzamxvnp2ejf76yslwvt.png" alt="Inserting a new document using MongoDB Compass interface" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 4. Read/View Documents
&lt;/h3&gt;

&lt;p&gt;Documents will show in table view. Click &lt;code&gt;{}&lt;/code&gt; to view raw JSON.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzqvy31c5tmpnqq05iuug.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzqvy31c5tmpnqq05iuug.png" alt="MongoDB Compass View data after inserting a document" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 5. Update Document
&lt;/h3&gt;

&lt;p&gt;Click ✏️ icon → Edit → REPLACE✅&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuhim6of8y6vdpoyo28m7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuhim6of8y6vdpoyo28m7.png" alt="Update Document in MongoDB Compass" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ 6. Delete Document
&lt;/h3&gt;

&lt;p&gt;Click 🗑️ icon → DELETE&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9g1tcjganvb4cq4730d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9g1tcjganvb4cq4730d.png" alt="Delete Document in MongoDB Compass" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 Above &lt;em&gt;you can see a visual walk-through of inserting, updating, and deleting using Compass&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Wrapping Up
&lt;/h2&gt;

&lt;p&gt;Well done! You’ve successfully completed your first hands-on experience with MongoDB. From understanding core concepts to performing CRUD operations using both the shell and Compass, you now have a strong foundation to build upon.&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;next part&lt;/strong&gt; of this series, we’ll explore advanced MongoDB topics including optimized queries, indexing strategies, relationships, and best practices for data modeling.&lt;/p&gt;

&lt;p&gt;📌 Stay connected, and consider bookmarking this series to continue your learning journey.&lt;/p&gt;

&lt;p&gt;🙏 &lt;em&gt;As a continuous learner, I welcome your suggestions or feedback to improve this guide and support others on the same path.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>database</category>
      <category>nosql</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
