<?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>Forem: MUKHIL S</title>
    <description>The latest articles on Forem by MUKHIL S (@mukhil_77).</description>
    <link>https://forem.com/mukhil_77</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%2F3448255%2F95cbf94d-afbf-4b88-bb5b-8ccea303d4d6.png</url>
      <title>Forem: MUKHIL S</title>
      <link>https://forem.com/mukhil_77</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mukhil_77"/>
    <language>en</language>
    <item>
      <title>Kubernetes for Absolute Beginners (2026)</title>
      <dc:creator>MUKHIL S</dc:creator>
      <pubDate>Wed, 11 Mar 2026 05:27:06 +0000</pubDate>
      <link>https://forem.com/mukhil_77/kubernetes-for-absolute-beginners-2026-5g82</link>
      <guid>https://forem.com/mukhil_77/kubernetes-for-absolute-beginners-2026-5g82</guid>
      <description>&lt;h1&gt;
  
  
  ☸ Kubernetes for Absolute Beginners (2026) – Theory First, Then Hands-On
&lt;/h1&gt;

&lt;p&gt;If Docker made applications &lt;strong&gt;portable&lt;/strong&gt;, Kubernetes makes them &lt;strong&gt;scalable and manageable in production&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Many people first hear:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Deploy it on Kubernetes.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But without understanding the &lt;strong&gt;mental model&lt;/strong&gt;, Kubernetes looks extremely complex.&lt;/p&gt;

&lt;p&gt;This guide follows the same structure:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Theory first (clear concepts)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then practical commands&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step-by-step beginner workflow&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h1&gt;
  
  
  🧠 PART 1 – Understand Kubernetes BEFORE Using Commands
&lt;/h1&gt;

&lt;h2&gt;
  
  
  🚨 The Problem Kubernetes Solves
&lt;/h2&gt;

&lt;p&gt;Docker runs containers.&lt;/p&gt;

&lt;p&gt;But real systems require more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple containers&lt;/li&gt;
&lt;li&gt;Load balancing&lt;/li&gt;
&lt;li&gt;Auto scaling&lt;/li&gt;
&lt;li&gt;Health monitoring&lt;/li&gt;
&lt;li&gt;Automatic restart&lt;/li&gt;
&lt;li&gt;Zero-downtime updates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Imagine running &lt;strong&gt;100 containers&lt;/strong&gt; manually.&lt;/p&gt;

&lt;p&gt;Problems appear quickly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What if a container crashes?&lt;/li&gt;
&lt;li&gt;What if traffic increases?&lt;/li&gt;
&lt;li&gt;What if a machine fails?&lt;/li&gt;
&lt;li&gt;How do we update without downtime?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Manually managing this becomes impossible.&lt;/p&gt;

&lt;p&gt;Kubernetes solves this.&lt;/p&gt;




&lt;h1&gt;
  
  
  📦 The Core Idea of Kubernetes
&lt;/h1&gt;

&lt;p&gt;Kubernetes is a &lt;strong&gt;container orchestration system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It manages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Containers&lt;/li&gt;
&lt;li&gt;Servers&lt;/li&gt;
&lt;li&gt;Networking&lt;/li&gt;
&lt;li&gt;Scaling&lt;/li&gt;
&lt;li&gt;Updates&lt;/li&gt;
&lt;li&gt;Failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of managing containers manually, you declare:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I want 5 copies of my app running.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kubernetes ensures that state is always maintained.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 Kubernetes Mental Model
&lt;/h1&gt;

&lt;p&gt;A simple way to think about Kubernetes:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System Role&lt;/th&gt;
&lt;th&gt;Real-World Analogy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Docker&lt;/td&gt;
&lt;td&gt;Packaging machine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kubernetes&lt;/td&gt;
&lt;td&gt;Factory manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Containers&lt;/td&gt;
&lt;td&gt;Workers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nodes&lt;/td&gt;
&lt;td&gt;Factory machines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pods&lt;/td&gt;
&lt;td&gt;Worker groups&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Docker &lt;strong&gt;creates containers&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Kubernetes &lt;strong&gt;manages them at scale&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧱 Kubernetes Architecture (Simplified)
&lt;/h1&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%2Fmvqmusmvtiethsm2np21.jpg" 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%2Fmvqmusmvtiethsm2np21.jpg" alt="Image" width="800" height="450"&gt;&lt;/a&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%2Fwtnp18954ufsrzy2hna4.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%2Fwtnp18954ufsrzy2hna4.png" alt="Image" width="800" height="503"&gt;&lt;/a&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%2F6khu498uzc19zmjzp6gs.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%2F6khu498uzc19zmjzp6gs.png" alt="Image" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A Kubernetes system is called a &lt;strong&gt;cluster&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A cluster contains two main parts:&lt;/p&gt;

&lt;h3&gt;
  
  
  1️⃣ Control Plane (Master)
&lt;/h3&gt;

&lt;p&gt;The brain of Kubernetes.&lt;/p&gt;

&lt;p&gt;Components:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;API Server&lt;/td&gt;
&lt;td&gt;Entry point for commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scheduler&lt;/td&gt;
&lt;td&gt;Decides where pods run&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Controller Manager&lt;/td&gt;
&lt;td&gt;Maintains desired state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;etcd&lt;/td&gt;
&lt;td&gt;Database storing cluster state&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  2️⃣ Worker Nodes
&lt;/h3&gt;

&lt;p&gt;Machines that actually run applications.&lt;/p&gt;

&lt;p&gt;Each node contains:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kubelet&lt;/td&gt;
&lt;td&gt;Communicates with control plane&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Container Runtime&lt;/td&gt;
&lt;td&gt;Runs containers (Docker/Containerd)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kube Proxy&lt;/td&gt;
&lt;td&gt;Networking&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h1&gt;
  
  
  📦 Kubernetes Core Object: Pod
&lt;/h1&gt;

&lt;p&gt;The smallest unit in Kubernetes is a &lt;strong&gt;Pod&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A Pod contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One or more containers&lt;/li&gt;
&lt;li&gt;Shared network&lt;/li&gt;
&lt;li&gt;Shared storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Important concept:&lt;/p&gt;

&lt;p&gt;Containers inside the same pod behave like &lt;strong&gt;one application unit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Pod
 ├── Container (App)
 └── Container (Logging agent)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  🔁 Deployment – Managing Pods
&lt;/h1&gt;

&lt;p&gt;Running pods directly is risky.&lt;/p&gt;

&lt;p&gt;Instead Kubernetes uses &lt;strong&gt;Deployments&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Deployment manages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Number of pods&lt;/li&gt;
&lt;li&gt;Rolling updates&lt;/li&gt;
&lt;li&gt;Auto recovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example declaration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I want 3 pods running.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If one crashes → Kubernetes creates another.&lt;/p&gt;




&lt;h1&gt;
  
  
  🌐 Service – Stable Networking
&lt;/h1&gt;

&lt;p&gt;Pods have &lt;strong&gt;dynamic IP addresses&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;They constantly change.&lt;/p&gt;

&lt;p&gt;To solve this, Kubernetes provides &lt;strong&gt;Services&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Service gives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stable IP&lt;/li&gt;
&lt;li&gt;Stable DNS name&lt;/li&gt;
&lt;li&gt;Load balancing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;frontend-service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It routes traffic to available pods.&lt;/p&gt;




&lt;h1&gt;
  
  
  📈 Scaling in Kubernetes
&lt;/h1&gt;

&lt;p&gt;Scaling can be done manually or automatically.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl scale deployment my-app --replicas=5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now Kubernetes runs &lt;strong&gt;5 pods&lt;/strong&gt; instead of 1.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Horizontal Pod Autoscaler&lt;/strong&gt;, scaling happens automatically based on CPU or traffic.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔑 Other Important Kubernetes Concepts
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Namespace
&lt;/h3&gt;

&lt;p&gt;Logical grouping of resources.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dev
testing
production
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  ConfigMap
&lt;/h3&gt;

&lt;p&gt;Stores configuration.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DATABASE_URL
API_ENDPOINT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Separates configuration from code.&lt;/p&gt;




&lt;h3&gt;
  
  
  Secret
&lt;/h3&gt;

&lt;p&gt;Stores sensitive information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Passwords&lt;/li&gt;
&lt;li&gt;API keys&lt;/li&gt;
&lt;li&gt;Tokens&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Persistent Volume
&lt;/h3&gt;

&lt;p&gt;Used when applications require &lt;strong&gt;storage&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;Uploaded files&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  🧠 One-Sentence Mental Model
&lt;/h1&gt;

&lt;p&gt;Kubernetes continuously ensures that the &lt;strong&gt;desired state of your application matches the actual running state of the cluster&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 PART 2 – Hands-On Kubernetes (Beginner Friendly)
&lt;/h1&gt;

&lt;p&gt;Before running Kubernetes commands, you need a cluster.&lt;/p&gt;

&lt;p&gt;For learning, use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Minikube&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kind&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker Desktop Kubernetes&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beginner-friendly option:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minikube&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  ✅ Step 1 – Install Minikube
&lt;/h1&gt;

&lt;p&gt;Install Minikube:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://minikube.sigs.k8s.io/docs/start/" rel="noopener noreferrer"&gt;https://minikube.sigs.k8s.io/docs/start/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Verify installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  ▶ Step 2 – Start Kubernetes Cluster
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a &lt;strong&gt;local Kubernetes cluster&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Check cluster status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl cluster-info
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  📦 Step 3 – Run Your First Pod
&lt;/h1&gt;

&lt;p&gt;Create a pod:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl run nginx --image=nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check pods:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pods
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nginx   Running
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  🌐 Step 4 – Expose the Pod
&lt;/h1&gt;

&lt;p&gt;Pods are not accessible externally by default.&lt;/p&gt;

&lt;p&gt;Expose using a service.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl expose pod nginx --type=NodePort --port=80
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check services:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get svc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open in browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minikube service nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will see the &lt;strong&gt;Nginx welcome page&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  📋 Most Important Kubernetes Commands
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Show cluster nodes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get nodes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Show pods
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pods
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Show services
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get services
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Delete pod
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl delete pod nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Describe resource
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl describe pod nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Shows detailed debugging information.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧑‍💻 Create a Deployment (Real-World Way)
&lt;/h1&gt;

&lt;p&gt;Instead of a single pod:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl create deployment myapp --image=nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check deployments:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get deployments
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check pods:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get pods
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You will see Kubernetes created pods automatically.&lt;/p&gt;




&lt;h1&gt;
  
  
  📈 Scale Application
&lt;/h1&gt;

&lt;p&gt;Increase replicas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl scale deployment myapp --replicas=4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now Kubernetes runs &lt;strong&gt;4 identical pods&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔁 Update Application
&lt;/h1&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl set image deployment/myapp nginx=nginx:1.25
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kubernetes performs &lt;strong&gt;rolling updates&lt;/strong&gt; without downtime.&lt;/p&gt;




&lt;h1&gt;
  
  
  📄 Kubernetes YAML Example
&lt;/h1&gt;

&lt;p&gt;Real deployments use &lt;strong&gt;YAML files&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;h3&gt;
  
  
  deployment.yaml
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apps/v1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deployment&lt;/span&gt;

&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;myapp&lt;/span&gt;

&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;replicas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;

  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;matchLabels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;myapp&lt;/span&gt;

  &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;labels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;myapp&lt;/span&gt;

    &lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;containers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;myapp&lt;/span&gt;
        &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nginx&lt;/span&gt;
        &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;containerPort&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Apply configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -f deployment.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kubernetes creates everything automatically.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧩 Docker vs Kubernetes
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Docker&lt;/th&gt;
&lt;th&gt;Kubernetes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Purpose&lt;/td&gt;
&lt;td&gt;Run containers&lt;/td&gt;
&lt;td&gt;Manage containers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scope&lt;/td&gt;
&lt;td&gt;Single machine&lt;/td&gt;
&lt;td&gt;Cluster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scaling&lt;/td&gt;
&lt;td&gt;Manual&lt;/td&gt;
&lt;td&gt;Automatic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Load balancing&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Built-in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self healing&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Docker builds containers.&lt;/p&gt;

&lt;p&gt;Kubernetes runs them at scale.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎯 Why Kubernetes Is Widely Used
&lt;/h1&gt;

&lt;p&gt;Major companies rely on Kubernetes because it provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatic scaling&lt;/li&gt;
&lt;li&gt;Self-healing infrastructure&lt;/li&gt;
&lt;li&gt;High availability&lt;/li&gt;
&lt;li&gt;Rolling deployments&lt;/li&gt;
&lt;li&gt;Cloud portability&lt;/li&gt;
&lt;li&gt;Infrastructure automation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Platforms built on Kubernetes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Kubernetes Engine&lt;/li&gt;
&lt;li&gt;Amazon EKS&lt;/li&gt;
&lt;li&gt;Azure AKS&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  🧠 Final Mental Model
&lt;/h1&gt;

&lt;p&gt;Docker packages applications into containers.&lt;/p&gt;

&lt;p&gt;Kubernetes orchestrates those containers across many machines to ensure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reliability&lt;/li&gt;
&lt;li&gt;scalability&lt;/li&gt;
&lt;li&gt;automation&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kubernetes</category>
      <category>containers</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>Docker Explained: A Beginner-Friendly Introduction to Containerization (2025–2026)</title>
      <dc:creator>MUKHIL S</dc:creator>
      <pubDate>Wed, 18 Feb 2026 13:03:16 +0000</pubDate>
      <link>https://forem.com/mukhil_77/docker-explained-a-beginner-friendly-introduction-to-containerization-2025-2026-lcn</link>
      <guid>https://forem.com/mukhil_77/docker-explained-a-beginner-friendly-introduction-to-containerization-2025-2026-lcn</guid>
      <description>&lt;p&gt;🐳 Docker for Absolute Beginners (2026) – Theory First, Then Hands-On&lt;/p&gt;

&lt;p&gt;Hi everyone 👋&lt;br&gt;
If you've heard:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Just dockerize it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…and felt confused — this post is for you.&lt;/p&gt;

&lt;p&gt;We’ll start with clear &lt;strong&gt;theory (mental model first)&lt;/strong&gt;&lt;br&gt;
Then move to &lt;strong&gt;hands-on practical commands&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By the end, Docker will feel simple.&lt;/p&gt;


&lt;h1&gt;
  
  
  🧠 PART 1 – Understand Docker BEFORE Typing Commands
&lt;/h1&gt;
&lt;h2&gt;
  
  
  🚨 The Big Problem Docker Solves
&lt;/h2&gt;

&lt;p&gt;Before Docker:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You write code&lt;/li&gt;
&lt;li&gt;It depends on exact versions&lt;/li&gt;
&lt;li&gt;Your laptop works&lt;/li&gt;
&lt;li&gt;Production crashes&lt;/li&gt;
&lt;li&gt;Your friend’s system fails&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Result:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"But it works on my machine 😭"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Docker solves this.&lt;/p&gt;

&lt;p&gt;Docker packages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your app&lt;/li&gt;
&lt;li&gt;Runtime (Node, Python, Java)&lt;/li&gt;
&lt;li&gt;Libraries&lt;/li&gt;
&lt;li&gt;System dependencies&lt;/li&gt;
&lt;li&gt;Configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Into a &lt;strong&gt;standard container&lt;/strong&gt; that runs the same everywhere.&lt;/p&gt;


&lt;h1&gt;
  
  
  📦 The Core Idea: Image vs Container
&lt;/h1&gt;
&lt;h2&gt;
  
  
  🖼 Docker Image vs 📦 Docker Container
&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%2F3fb5fgn8l8a7gyh438ji.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%2F3fb5fgn8l8a7gyh438ji.png" alt="Image" width="800" height="327"&gt;&lt;/a&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%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD4D12AQEK3lCh20qRQg%2Farticle-cover_image-shrink_720_1280%2FB4DZar6eUrHsAM-%2F0%2F1746640955350%3Fe%3D2147483647%26t%3DkBRRUsjCdQ0-U2HpZZXY-6ooLzIrSnXNN2g7qdM287g%26v%3Dbeta" 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%2Fmedia.licdn.com%2Fdms%2Fimage%2Fv2%2FD4D12AQEK3lCh20qRQg%2Farticle-cover_image-shrink_720_1280%2FB4DZar6eUrHsAM-%2F0%2F1746640955350%3Fe%3D2147483647%26t%3DkBRRUsjCdQ0-U2HpZZXY-6ooLzIrSnXNN2g7qdM287g%26v%3Dbeta" alt="Image" width="1280" height="720"&gt;&lt;/a&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%2F4lo9ff1t3zqfy3q1opjp.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%2F4lo9ff1t3zqfy3q1opjp.png" alt="Image" width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concept&lt;/th&gt;
&lt;th&gt;Analogy&lt;/th&gt;
&lt;th&gt;Running?&lt;/th&gt;
&lt;th&gt;Changeable?&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Image&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Recipe / Blueprint&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;❌ Immutable&lt;/td&gt;
&lt;td&gt;Template&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Container&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cooked food / Running car&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;⚠ Temporary&lt;/td&gt;
&lt;td&gt;Live app&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Simple Programming Analogy:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Image = Class&lt;/li&gt;
&lt;li&gt;Container = Object&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You create many containers from one image.&lt;/p&gt;


&lt;h1&gt;
  
  
  🧱 How Docker Images Work (Layers)
&lt;/h1&gt;

&lt;p&gt;Docker images are built in &lt;strong&gt;layers&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Base OS (Ubuntu / Alpine)&lt;/li&gt;
&lt;li&gt;Install packages&lt;/li&gt;
&lt;li&gt;Install runtime (Node/Python)&lt;/li&gt;
&lt;li&gt;Copy app code&lt;/li&gt;
&lt;li&gt;Set startup command&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each step creates a new layer.&lt;/p&gt;

&lt;p&gt;Why this is powerful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Layers are cached&lt;/li&gt;
&lt;li&gt;If only your code changes → only last layer rebuilds&lt;/li&gt;
&lt;li&gt;Faster builds&lt;/li&gt;
&lt;li&gt;Less storage usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you run a container:&lt;/p&gt;

&lt;p&gt;All image layers (read-only)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One small writable layer on top&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Delete container → writable layer disappears.&lt;/p&gt;

&lt;p&gt;Unless you use &lt;strong&gt;Volumes&lt;/strong&gt; (we’ll see later).&lt;/p&gt;


&lt;h1&gt;
  
  
  🚢 Why the Whale Logo?
&lt;/h1&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%2Fvw13j2tcw9qiyhtuq4qm.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%2Fvw13j2tcw9qiyhtuq4qm.png" alt="Image" width="320" height="270"&gt;&lt;/a&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%2F4ha8k4giiuiueit2gm3c.jpg" 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%2F4ha8k4giiuiueit2gm3c.jpg" alt="Image" width="800" height="405"&gt;&lt;/a&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%2Fjxt6kfc8w5ogy6i6shd1.jpg" 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%2Fjxt6kfc8w5ogy6i6shd1.jpg" alt="Image" width="800" height="456"&gt;&lt;/a&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%2F47sfrj2q69y8cvll8smq.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%2F47sfrj2q69y8cvll8smq.png" alt="Image" width="800" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Docker is inspired by real shipping containers.&lt;/p&gt;

&lt;p&gt;Shipping containers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard size&lt;/li&gt;
&lt;li&gt;Work on ships, trucks, trains&lt;/li&gt;
&lt;li&gt;Carry anything safely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Docker containers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard software packaging&lt;/li&gt;
&lt;li&gt;Run anywhere Docker exists&lt;/li&gt;
&lt;li&gt;Carry apps safely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same concept. Different world.&lt;/p&gt;


&lt;h1&gt;
  
  
  🔑 Other Important Theory Terms
&lt;/h1&gt;
&lt;h3&gt;
  
  
  📝 Dockerfile
&lt;/h3&gt;

&lt;p&gt;A text file that contains instructions to build an image.&lt;/p&gt;

&lt;p&gt;Example instructions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FROM&lt;/li&gt;
&lt;li&gt;RUN&lt;/li&gt;
&lt;li&gt;COPY&lt;/li&gt;
&lt;li&gt;CMD&lt;/li&gt;
&lt;li&gt;EXPOSE&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  🏬 Docker Hub
&lt;/h3&gt;

&lt;p&gt;A registry (like GitHub for images).&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull public images&lt;/li&gt;
&lt;li&gt;Push your own images&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;
  
  
  💾 Volumes
&lt;/h3&gt;

&lt;p&gt;Special storage outside containers.&lt;/p&gt;

&lt;p&gt;Why?&lt;br&gt;
Containers are temporary.&lt;br&gt;
Volumes store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database data&lt;/li&gt;
&lt;li&gt;Uploaded files&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even if container is deleted.&lt;/p&gt;


&lt;h3&gt;
  
  
  ⚙ docker run vs docker compose
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;docker run&lt;/td&gt;
&lt;td&gt;Start one container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;docker compose&lt;/td&gt;
&lt;td&gt;Manage multiple containers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Example:&lt;br&gt;
Web app + Database + Redis → use Compose.&lt;/p&gt;


&lt;h1&gt;
  
  
  🧠 One-Sentence Mental Model
&lt;/h1&gt;

&lt;p&gt;Docker turns your app and its entire environment into a portable image.&lt;br&gt;
You run that image as an isolated container — identical everywhere.&lt;/p&gt;

&lt;p&gt;If this makes sense, you’re ready for practice.&lt;/p&gt;


&lt;h1&gt;
  
  
  🚀 PART 2 – Hands-On Docker (Beginner Friendly)
&lt;/h1&gt;

&lt;p&gt;Now let’s actually run Docker.&lt;/p&gt;


&lt;h1&gt;
  
  
  ✅ Step 1: Install Docker
&lt;/h1&gt;

&lt;p&gt;Download Docker Desktop:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.docker.com/products/docker-desktop/" rel="noopener noreferrer"&gt;https://www.docker.com/products/docker-desktop/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Verify installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  🎉 Step 2: Run Your First Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you see a success message — Docker is working.&lt;/p&gt;




&lt;h1&gt;
  
  
  🌐 Run a Real Web Server (Nginx)
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 8080:80 nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What this means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-d&lt;/code&gt; → Run in background&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-p 8080:80&lt;/code&gt; → Map port&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;nginx&lt;/code&gt; → Image name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8080
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see the Nginx page 🎉&lt;/p&gt;




&lt;h1&gt;
  
  
  📋 Basic Commands You Must Know
&lt;/h1&gt;

&lt;h3&gt;
  
  
  List running containers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  List all containers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  List images
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Stop container
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker stop &amp;lt;container_id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove container
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;container_id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove image
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker rmi &amp;lt;image_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  🗄 Example: Run PostgreSQL Database
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--name&lt;/span&gt; my-postgres &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;POSTGRES_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;mysecretpassword &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-p&lt;/span&gt; 5432:5432 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-v&lt;/span&gt; pgdata:/var/lib/postgresql/data &lt;span class="se"&gt;\&lt;/span&gt;
  postgres:16
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Explanation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-e&lt;/code&gt; → Environment variable&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-v&lt;/code&gt; → Volume (persistent storage)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;-p&lt;/code&gt; → Port mapping&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  🧑‍💻 Build Your Own Docker Image (Mini Project)
&lt;/h1&gt;

&lt;p&gt;Create folder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-first-docker-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside it create:&lt;/p&gt;

&lt;h3&gt;
  
  
  app.py
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello from my first Docker container 🚀&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Dockerfile
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; python:3.12-slim&lt;/span&gt;

&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /app&lt;/span&gt;

&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; app.py .&lt;/span&gt;

&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["python", "app.py"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  🔨 Build Image
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; my-first-app &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  ▶ Run Container
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run my-first-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If it prints your message:&lt;/p&gt;

&lt;p&gt;Congratulations 🎉&lt;br&gt;
You just built and ran your own Docker image.&lt;/p&gt;


&lt;h1&gt;
  
  
  🧩 Understanding Port Mapping
&lt;/h1&gt;

&lt;p&gt;Format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-p host_port:container_port
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-p 5000:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Access via localhost:5000&lt;/li&gt;
&lt;li&gt;App runs inside container on port 3000&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  🎯 Why Developers Love Docker
&lt;/h1&gt;

&lt;p&gt;✅ Same environment everywhere&lt;br&gt;
✅ No dependency conflicts&lt;br&gt;
✅ Fast setup&lt;br&gt;
✅ Easy deployment&lt;br&gt;
✅ Works with CI/CD&lt;br&gt;
✅ Cloud-ready&lt;/p&gt;

&lt;p&gt;Happy Containerizing ,please like this post 🐳&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>docker</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Data Formats Every Data Analyst Should Know</title>
      <dc:creator>MUKHIL S</dc:creator>
      <pubDate>Thu, 02 Oct 2025 04:49:23 +0000</pubDate>
      <link>https://forem.com/mukhil_77/data-formats-every-data-analyst-should-know-4f72</link>
      <guid>https://forem.com/mukhil_77/data-formats-every-data-analyst-should-know-4f72</guid>
      <description>&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%2Ftdqsg9qkjhzdu881k588.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%2Ftdqsg9qkjhzdu881k588.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
Picking the right data format can make your analytics workflow faster, leaner, and easier to manage. Whether you're wrangling data in the cloud or locally, understanding how data is structured is key. In this post, we'll dive into six popular formats: &lt;strong&gt;CSV&lt;/strong&gt;, &lt;strong&gt;SQL (Relational Tables)&lt;/strong&gt;, &lt;strong&gt;JSON&lt;/strong&gt;, &lt;strong&gt;Parquet&lt;/strong&gt;, &lt;strong&gt;XML&lt;/strong&gt;, and &lt;strong&gt;Avro&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To keep it practical, I've created a small dataset of student exam records with four fields: &lt;code&gt;name&lt;/code&gt; (string), &lt;code&gt;register_number&lt;/code&gt; (integer), &lt;code&gt;subject&lt;/code&gt; (string), and &lt;code&gt;marks&lt;/code&gt; (integer). The dataset is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alice, 101, Math, 90&lt;/li&gt;
&lt;li&gt;Bob, 102, Science, 85&lt;/li&gt;
&lt;li&gt;Charlie, 103, Math, 95&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For each format, I'll explain what it is, show the dataset in a consistent, readable way (using text or tables, with code blocks only for file-based formats or scripts), and list pros and cons.&lt;/p&gt;
&lt;h2&gt;
  
  
  1. CSV (Comma-Separated Values)
&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%2Fcxk2uad68jeazfiw3pfq.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%2Fcxk2uad68jeazfiw3pfq.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What's the deal?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
CSV is the simplest format around. It's a text file where each row is a line, and values are separated by commas. You've probably opened one in Excel or Pandas. It's super easy to use but doesn't enforce data types, which can cause issues with complex data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset in CSV:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;name,register_number,subject,marks
Alice,101,Math,90
Bob,102,Science,85
Charlie,103,Math,95
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Human-readable and easy to edit
&lt;/li&gt;
&lt;li&gt;Supported by every tool (Pandas, Spark, Excel)
&lt;/li&gt;
&lt;li&gt;Perfect for quick data sharing
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No schema or type enforcement
&lt;/li&gt;
&lt;li&gt;Inefficient for large or nested datasets
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. SQL (Relational Table Format)
&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%2F3znbl76nzmih5pnnn2bj.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%2F3znbl76nzmih5pnnn2bj.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What's the deal?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
SQL organizes data in relational database tables, with columns defining data types and rows as records. It's not a file format but a structured way to store and query data using SQL commands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset in SQL:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;register_number&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;subject&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;marks&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;register_number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;marks&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt; 
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Alice'&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="s1"&gt;'Math'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Bob'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;102&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Science'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Charlie'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;103&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Math'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;95&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;register_number&lt;/th&gt;
&lt;th&gt;subject&lt;/th&gt;
&lt;th&gt;marks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Alice&lt;/td&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;Math&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bob&lt;/td&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Science&lt;/td&gt;
&lt;td&gt;85&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Charlie&lt;/td&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Math&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Strict data types and schema
&lt;/li&gt;
&lt;li&gt;Optimized for querying and joins
&lt;/li&gt;
&lt;li&gt;Ideal for structured analytics
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requires a database system
&lt;/li&gt;
&lt;li&gt;Overkill for simple tasks
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. JSON (JavaScript Object Notation)
&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%2Fkty8el812vz6zq99s5kq.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%2Fkty8el812vz6zq99s5kq.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What's the deal?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
JSON is a text-based format using key-value pairs and arrays. It's lightweight, supports nested data, and is a staple for APIs and NoSQL databases like MongoDB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset in JSON:&lt;/strong&gt;&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="p"&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;"Alice"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"register_number"&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;"subject"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Math"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"marks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;90&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="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;"Bob"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"register_number"&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;"subject"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Science"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"marks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;85&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="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;"Charlie"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"register_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;103&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"subject"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Math"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"marks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;95&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;Pros&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexible for semi-structured or nested data
&lt;/li&gt;
&lt;li&gt;Easy to parse in Python, JavaScript, etc.
&lt;/li&gt;
&lt;li&gt;Common in APIs and web apps
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verbose, increasing file size
&lt;/li&gt;
&lt;li&gt;Slower for analytics than binary formats
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Parquet (Columnar Storage Format)
&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%2Fypftn4sgv245u1kw6h9k.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%2Fypftn4sgv245u1kw6h9k.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What's the deal?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Parquet is a binary, columnar format optimized for analytics. It stores data by columns, not rows, which boosts compression and query speed in tools like Apache Spark or Pandas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset in Parquet:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pyarrow&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pa&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pyarrow.parquet&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pq&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Alice&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Bob&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Charlie&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;register_number&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&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="mi"&gt;102&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;103&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;subject&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Math&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Science&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Math&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;marks&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;95&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pa&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Table&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pandas&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;pq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write_table&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;table&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;students.parquet&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Efficient for columnar queries and compression
&lt;/li&gt;
&lt;li&gt;Great for big data tools (Spark, Dask)
&lt;/li&gt;
&lt;li&gt;Supports complex schemas
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not human-readable
&lt;/li&gt;
&lt;li&gt;Requires specialized libraries
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. XML (Extensible Markup Language)
&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%2Fxfko4ugh9f6ry3spyyzi.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%2Fxfko4ugh9f6ry3spyyzi.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What's the deal?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
XML uses tags to create a tree-like structure. It's customizable, supports hierarchies, and is common in enterprise systems and web services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset in XML:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;students&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;student&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;Alice&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;register_number&amp;gt;&lt;/span&gt;101&lt;span class="nt"&gt;&amp;lt;/register_number&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;subject&amp;gt;&lt;/span&gt;Math&lt;span class="nt"&gt;&amp;lt;/subject&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;marks&amp;gt;&lt;/span&gt;90&lt;span class="nt"&gt;&amp;lt;/marks&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/student&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;student&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;Bob&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;register_number&amp;gt;&lt;/span&gt;102&lt;span class="nt"&gt;&amp;lt;/register_number&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;subject&amp;gt;&lt;/span&gt;Science&lt;span class="nt"&gt;&amp;lt;/subject&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;marks&amp;gt;&lt;/span&gt;85&lt;span class="nt"&gt;&amp;lt;/marks&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/student&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;student&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;Charlie&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;register_number&amp;gt;&lt;/span&gt;103&lt;span class="nt"&gt;&amp;lt;/register_number&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;subject&amp;gt;&lt;/span&gt;Math&lt;span class="nt"&gt;&amp;lt;/subject&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;marks&amp;gt;&lt;/span&gt;95&lt;span class="nt"&gt;&amp;lt;/marks&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/student&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/students&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Supports complex, hierarchical data
&lt;/li&gt;
&lt;li&gt;Extensible with custom tags
&lt;/li&gt;
&lt;li&gt;Common in enterprise systems
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verbose and slow to process
&lt;/li&gt;
&lt;li&gt;Less popular than JSON for modern apps
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Avro (Row-based Storage Format)
&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%2F7wg8ykef8suxlh4ujpin.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%2F7wg8ykef8suxlh4ujpin.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;What's the deal?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Avro is a binary, row-based format for efficient serialization. It embeds a schema with the data, making it self-describing and ideal for schema evolution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset in Avro:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;fastavro&lt;/span&gt;

&lt;span class="n"&gt;schema&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;record&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Student&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;fields&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;register_number&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;int&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;subject&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;marks&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;int&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;records&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Alice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;register_number&lt;/span&gt;&lt;span class="sh"&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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;subject&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Math&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;marks&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bob&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;register_number&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;102&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;subject&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Science&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;marks&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Charlie&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;register_number&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;103&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;subject&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Math&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;marks&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;95&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;students.avro&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;wb&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;fastavro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;schema&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;records&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compact and fast for serialization
&lt;/li&gt;
&lt;li&gt;Supports schema evolution
&lt;/li&gt;
&lt;li&gt;Ideal for streaming (e.g., Kafka)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not human-readable
&lt;/li&gt;
&lt;li&gt;Requires specific libraries
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CSV&lt;/strong&gt;: Simple, portable, but lacks schema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQL&lt;/strong&gt;: Structured and powerful for querying, but tied to databases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt;: Flexible, widely used in APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parquet&lt;/strong&gt;: Best for analytics, efficient storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;XML&lt;/strong&gt;: Verbose, but still used in legacy systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avro&lt;/strong&gt;: Schema-driven, compact, common in streaming and big data pipelines.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Which Format Should You Choose?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Recommended Format&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Quick prototyping&lt;/td&gt;
&lt;td&gt;CSV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Relational analytics&lt;/td&gt;
&lt;td&gt;SQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API integrations&lt;/td&gt;
&lt;td&gt;JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Big Data analytics&lt;/td&gt;
&lt;td&gt;Parquet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise systems&lt;/td&gt;
&lt;td&gt;XML&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data pipelines/streaming&lt;/td&gt;
&lt;td&gt;Avro&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Choosing the right format depends on your system and use case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; In cloud environments, Parquet and Avro are top picks for efficiency, while CSV and JSON are great for prototyping.&lt;/p&gt;

&lt;p&gt;What's your favorite data format? Got a killer use case? Drop it in the comments! 👇&lt;/p&gt;

</description>
      <category>data</category>
      <category>analytics</category>
      <category>cloud</category>
      <category>bigdata</category>
    </item>
    <item>
      <title>Working with Yelp Data in MongoDB: CRUD Operations and Queries</title>
      <dc:creator>MUKHIL S</dc:creator>
      <pubDate>Thu, 21 Aug 2025 09:12:04 +0000</pubDate>
      <link>https://forem.com/mukhil_77/working-with-yelp-data-in-mongodb-crud-operations-and-queries-2ip5</link>
      <guid>https://forem.com/mukhil_77/working-with-yelp-data-in-mongodb-crud-operations-and-queries-2ip5</guid>
      <description>&lt;p&gt;In this blog post, we'll explore how to perform basic CRUD operations and queries on a MongoDB database named &lt;code&gt;mydb&lt;/code&gt; with a collection called &lt;code&gt;yelp&lt;/code&gt;, based on a Yelp dataset. We'll use MongoDB's JavaScript-based query syntax to insert records, find top-rated businesses, count reviews containing specific words, retrieve reviews for a business, update a review, and delete a record. Let's dive in!&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Inserting Records into the Yelp Collection
&lt;/h3&gt;

&lt;p&gt;To populate the &lt;code&gt;yelp&lt;/code&gt; collection, we can use the &lt;code&gt;insertMany&lt;/code&gt; method to add multiple documents at once. Below is an example of inserting 10 review documents, each with fields like &lt;code&gt;business_id&lt;/code&gt;, &lt;code&gt;date&lt;/code&gt;, &lt;code&gt;review_id&lt;/code&gt;, &lt;code&gt;stars&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;type&lt;/code&gt;, &lt;code&gt;user_id&lt;/code&gt;, &lt;code&gt;cool&lt;/code&gt;, &lt;code&gt;useful&lt;/code&gt;, and &lt;code&gt;funny&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.yelp.insertMany([
    {
        business_id: "A1B2C3D4E5F6G7H8I9J0K1",
        date: new Date("2023-01-01"),
        review_id: "R1S2T3U4V5W6X7Y8Z9A0B1",
        stars: 4,
        text: "Great food and ambiance, will come back!",
        type: "review",
        user_id: "U1V2W3X4Y5Z6A7B8C9D0E1",
        cool: 1,
        useful: 2,
        funny: 0
    },
    {
        business_id: "A1B2C3D4E5F6G7H8I9J0K1",
        date: new Date("2023-02-15"),
        review_id: "R2T3U4V5W6X7Y8Z9A0B1C2",
        stars: 5,
        text: "Amazing service, loved the pizza!",
        type: "review",
        user_id: "U2W3X4Y5Z6A7B8C9D0E1F2",
        cool: 2,
        useful: 3,
        funny: 1
    },
    {
        business_id: "B2C3D4E5F6G7H8I9J0K1L2",
        date: new Date("2023-03-10"),
        review_id: "R3U4V5W6X7Y8Z9A0B1C2D3",
        stars: 3,
        text: "Decent food, but slow service.",
        type: "review",
        user_id: "U3X4Y5Z6A7B8C9D0E1F2G3",
        cool: 0,
        useful: 1,
        funny: 0
    },
    {
        business_id: "B2C3D4E5F6G7H8I9J0K1L2",
        date: new Date("2023-04-20"),
        review_id: "R4V5W6X7Y8Z9A0B1C2D3E4",
        stars: 4,
        text: "Good burgers, nice patio.",
        type: "review",
        user_id: "U4Y5Z6A7B8C9D0E1F2G3H4",
        cool: 1,
        useful: 1,
        funny: 0
    },
    {
        business_id: "C3D4E5F6G7H8I9J0K1L2M3",
        date: new Date("2023-05-05"),
        review_id: "R5W6X7Y8Z9A0B1C2D3E4F5",
        stars: 5,
        text: "Best sushi ever, fresh and tasty!",
        type: "review",
        user_id: "U5Z6A7B8C9D0E1F2G3H4I5",
        cool: 3,
        useful: 4,
        funny: 2
    },
    {
        business_id: "C3D4E5F6G7H8I9J0K1L2M3",
        date: new Date("2023-06-12"),
        review_id: "R6X7Y8Z9A0B1C2D3E4F5G6",
        stars: 4,
        text: "Really good desserts, friendly staff.",
        type: "review",
        user_id: "U6A7B8C9D0E1F2G3H4I5J6",
        cool: 2,
        useful: 2,
        funny: 1
    },
    {
        business_id: "D4E5F6G7H8I9J0K1L2M3N4",
        date: new Date("2023-07-19"),
        review_id: "R7Y8Z9A0B1C2D3E4F5G6H7",
        stars: 5,
        text: "Fantastic experience, highly recommend!",
        type: "review",
        user_id: "U7B8C9D0E1F2G3H4I5J6K7",
        cool: 4,
        useful: 5,
        funny: 3
    },
    {
        business_id: "D4E5F6G7H8I9J0K1L2M3N4",
        date: new Date("2023-08-25"),
        review_id: "R8Z9A0B1C2D3E4F5G6H7I8",
        stars: 3,
        text: "Average food, great drinks.",
        type: "review",
        user_id: "U8C9D0E1F2G3H4I5J6K7L8",
        cool: 0,
        useful: 1,
        funny: 0
    },
    {
        business_id: "E5F6G7H8I9J0K1L2M3N4O5",
        date: new Date("2023-09-30"),
        review_id: "R9A0B1C2D3E4F5G6H7I8J9",
        stars: 4,
        text: "Loved the vibe, food was good.",
        type: "review",
        user_id: "U9D0E1F2G3H4I5J6K7L8M9",
        cool: 2,
        useful: 3,
        funny: 1
    },
    {
        business_id: "E5F6G7H8I9J0K1L2M3N4O5",
        date: new Date("2023-10-15"),
        review_id: "S0B1C2D3E4F5G6H7I8J9K0",
        stars: 5,
        text: "Incredible food, great service!",
        type: "review",
        user_id: "V0E1F2G3H4I5J6K7L8M9N0",
        cool: 3,
        useful: 4,
        funny: 2
    }
]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each document represents a review with fields matching the structure of a Yelp dataset (e.g., &lt;code&gt;business_id&lt;/code&gt;, &lt;code&gt;stars&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;). Note that the 'date' field uses MongoDB's &lt;code&gt;new Date()&lt;/code&gt; to store dates properly.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Finding the Top 5 Businesses by Average Rating
&lt;/h3&gt;

&lt;p&gt;To find the top 5 businesses with the highest average rating, we use MongoDB's aggregation pipeline. The pipeline groups reviews by 'business_id', computes the average 'stars', sorts in descending order, and limits to 5 results.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.yelp.aggregate([
    { $group: { _id: "$business_id", avg_rating: { $avg: "$stars" } } },
    { $sort: { avg_rating: -1 } },
    { $limit: 5 }
]);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For the inserted data, this query returns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;'C3D4E5F6G7H8I9J0K1L2M3': 4.5&lt;/li&gt;
&lt;li&gt;'E5F6G7H8I9J0K1L2M3N4O5': 4.5&lt;/li&gt;
&lt;li&gt;'A1B2C3D4E5F6G7H8I9J0K1': 4.5&lt;/li&gt;
&lt;li&gt;'D4E5F6G7H8I9J0K1L2M3N4': 4&lt;/li&gt;
&lt;li&gt;'B2C3D4E5F6G7H8I9J0K1L2': 3.5&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Counting Reviews Containing the Word “Good”
&lt;/h3&gt;

&lt;p&gt;To count reviews with the word 'good' in the 'text' field, we use &lt;code&gt;countDocuments&lt;/code&gt; with a case-insensitive regex.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.yelp.countDocuments({ text: { $regex: "good", $options: "i" } });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This returns '3' for the inserted data, as three reviews contain 'good' (review IDs 'R4V5W6X7Y8Z9A0B1C2D3E4', 'R6X7Y8Z9A0B1C2D3E4F5G6', 'R9A0B1C2D3E4F5G6H7I8J9').&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Retrieving All Reviews for a Specific Business
&lt;/h3&gt;

&lt;p&gt;To fetch all reviews for a specific 'business_id', we use the &lt;code&gt;find&lt;/code&gt; method. For example, to get reviews for '9yKzy9PApeiPPOUJEtnvkg' (from the sample Yelp data):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.yelp.find({ business_id: "9yKzy9PApeiPPOUJEtnvkg" }).toArray();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This returns all matching reviews. If the sample review from the Yelp CSV is inserted, it would return that review.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Updating a Review
&lt;/h3&gt;

&lt;p&gt;To update a review, we use &lt;code&gt;updateOne&lt;/code&gt; to modify specific fields. For example, to update the review with 'review_id' 'fWKvX83p0-ka4JS3dc6E5A' (from the sample data, if inserted):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.yelp.updateOne(
    { review_id: "fWKvX83p0-ka4JS3dc6E5A" },
    { $set: { stars: 3, text: "Updated review: Food was okay, service was slow." } }
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This sets 'stars' to 3 and updates the 'text' field for the specified review.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Deleting a Record
&lt;/h3&gt;

&lt;p&gt;To delete a review, we use &lt;code&gt;deleteOne&lt;/code&gt;. For example, to remove the review with 'review_id' 'R1S2T3U4V5W6X7Y8Z9A0B1':&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;db.yelp.deleteOne({ review_id: "R1S2T3U4V5W6X7Y8Z9A0B1" });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This removes the specified review from the collection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Notes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;These queries assume you're using MongoDB with the 'yelp' collection in the 'mydb' database.&lt;/li&gt;
&lt;li&gt;The 'date' field uses MongoDB's &lt;code&gt;Date&lt;/code&gt; object for proper storage. When importing a CSV, ensure dates are parsed correctly (e.g., &lt;code&gt;new Date("YYYY-MM-DD")&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;The regex in the 'good' query is case-insensitive ('$options: "i"').&lt;/li&gt;
&lt;li&gt;To import a large 'yelp.csv' file, you can use MongoDB's &lt;code&gt;mongoimport&lt;/code&gt; tool or a script to parse and insert the data.&lt;/li&gt;
&lt;li&gt;If you encounter issues or need help with specific MongoDB versions, importing data, or running these queries, feel free to share more details!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This setup provides a solid foundation for working with Yelp data in MongoDB. You can extend these queries for more complex analyses, like filtering by date or combining conditions. Happy coding!&lt;/p&gt;

&lt;p&gt;these are my sample images and work are mentioned in the image&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%2F5c778c3y77gf45919wy7.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%2F5c778c3y77gf45919wy7.png" alt="Starting Panel" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2Fg1wrrg0i4mlyp8a2jmcc.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%2Fg1wrrg0i4mlyp8a2jmcc.png" alt="create database" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2F7cdtvn3mbmcxkm5wk33y.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%2F7cdtvn3mbmcxkm5wk33y.png" alt="Import" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2Fxu8cl8wqt9h3tdsk4you.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%2Fxu8cl8wqt9h3tdsk4you.png" alt="import file" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2Fym6mly52sqzptyv1ftpj.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%2Fym6mly52sqzptyv1ftpj.png" alt="import panel" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2Fxq8064jp5npzqugs277t.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%2Fxq8064jp5npzqugs277t.png" alt="imported data preview" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2Fipsp9569v69zx4gltskj.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%2Fipsp9569v69zx4gltskj.png" alt="query" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2Fw0zskgvqf3zft916o6xo.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%2Fw0zskgvqf3zft916o6xo.png" alt=" query" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2Fwp60ui250mif7afins24.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%2Fwp60ui250mif7afins24.png" alt="query" width="800" height="450"&gt;&lt;/a&gt;&lt;br&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%2F5opv8yx65653su6fgfpf.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%2F5opv8yx65653su6fgfpf.png" alt="query" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>programming</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
