<?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: Nasrullah Sheikh Noman</title>
    <description>The latest articles on DEV Community by Nasrullah Sheikh Noman (@ns_noman).</description>
    <link>https://dev.to/ns_noman</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%2F3896875%2F51acaf23-be5e-420c-b58e-94ebdab8ee22.jpg</url>
      <title>DEV Community: Nasrullah Sheikh Noman</title>
      <link>https://dev.to/ns_noman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ns_noman"/>
    <language>en</language>
    <item>
      <title>MongoDB Query Practice Guide with Real Job Portal Dataset</title>
      <dc:creator>Nasrullah Sheikh Noman</dc:creator>
      <pubDate>Tue, 12 May 2026 05:32:04 +0000</pubDate>
      <link>https://dev.to/ns_noman/mongodb-query-practice-guide-with-real-job-portal-dataset-5e92</link>
      <guid>https://dev.to/ns_noman/mongodb-query-practice-guide-with-real-job-portal-dataset-5e92</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;Recently, I practiced MongoDB queries using a sample Job Portal database.&lt;/p&gt;

&lt;p&gt;Instead of learning operators in isolation, I used a realistic Job Portal dataset to better understand how MongoDB queries work in real-world applications.&lt;/p&gt;




&lt;h2&gt;
  
  
  Dataset Structure
&lt;/h2&gt;

&lt;p&gt;A sample &lt;code&gt;jobs&lt;/code&gt; collection was created with fields such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;title&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;company&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;location&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;salary&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;experience&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;skills&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;applicants&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;department&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example Document
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Software Engineer&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;,&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="nx"&gt;company&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;TechCorp Bangladesh&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;75000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;skills&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;JavaScript&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Node.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;MongoDB&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Topics Covered
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. Comparison Operators
&lt;/h2&gt;

&lt;p&gt;Used for filtering documents based on value comparison.&lt;/p&gt;

&lt;p&gt;Operators covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$eq&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ne&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$gt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$gte&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$lt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$lte&lt;/code&gt;&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 javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$gt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;70000&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2. Logical Operators
&lt;/h2&gt;

&lt;p&gt;Combining multiple query conditions.&lt;/p&gt;

&lt;p&gt;Operators covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$and&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$or&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$not&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$nor&lt;/code&gt;&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 javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;$or&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="na"&gt;location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Dhaka&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;isRemote&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. Array Query Operators
&lt;/h2&gt;

&lt;p&gt;Working with array fields such as &lt;code&gt;skills&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Operators covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$in&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$nin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$all&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$size&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$elemMatch&lt;/code&gt;&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 javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;skills&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$all&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Python&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;SQL&lt;/span&gt;&lt;span class="dl"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. Update Operators
&lt;/h2&gt;

&lt;p&gt;Updating existing documents.&lt;/p&gt;

&lt;p&gt;Operators covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$set&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$inc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$push&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$pull&lt;/code&gt;&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 javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;updateOne&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Frontend Developer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$push&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;skills&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;TypeScript&lt;/span&gt;&lt;span class="dl"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  5. Projection, Sorting &amp;amp; Pagination
&lt;/h2&gt;

&lt;p&gt;Topics covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Field selection&lt;/li&gt;
&lt;li&gt;Sorting&lt;/li&gt;
&lt;li&gt;Limiting results&lt;/li&gt;
&lt;li&gt;Pagination&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 javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;({},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;salary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  6. Aggregation Pipeline
&lt;/h2&gt;

&lt;p&gt;Used for analytics and reporting.&lt;/p&gt;

&lt;p&gt;Operators covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$match&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$group&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$project&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$sort&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Calculate average salary by department.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  7. Advanced Aggregation
&lt;/h2&gt;

&lt;p&gt;Production-level query operations.&lt;/p&gt;

&lt;p&gt;Operators covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$lookup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$unwind&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$facet&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Joining collections&lt;/li&gt;
&lt;li&gt;Dashboard analytics&lt;/li&gt;
&lt;li&gt;Multi-stage reporting&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Key Learning
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;MongoDB becomes significantly easier to understand when practiced using realistic datasets instead of isolated examples.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Next Learning Goals
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;MongoDB Indexing&lt;/li&gt;
&lt;li&gt;Mongoose ODM&lt;/li&gt;
&lt;li&gt;MongoDB Atlas&lt;/li&gt;
&lt;li&gt;Transactions&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Thanks for reading.&lt;/p&gt;

&lt;h1&gt;
  
  
  mongodb #backend #nodejs #database #webdev
&lt;/h1&gt;

</description>
      <category>mongodb</category>
      <category>backend</category>
      <category>node</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
