<?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: KAWSAR KABIR</title>
    <description>The latest articles on Forem by KAWSAR KABIR (@kawsarkabir).</description>
    <link>https://forem.com/kawsarkabir</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%2F1070855%2F9c3314fa-0b58-4e49-b690-54adab3b17a5.png</url>
      <title>Forem: KAWSAR KABIR</title>
      <link>https://forem.com/kawsarkabir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kawsarkabir"/>
    <language>en</language>
    <item>
      <title>What is React and How it works ?</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Thu, 12 Dec 2024 02:18:57 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/what-is-react-and-how-it-works--gcd</link>
      <guid>https://forem.com/kawsarkabir/what-is-react-and-how-it-works--gcd</guid>
      <description>&lt;p&gt;React is a Javascript Library for building user interfaces. এখন দুটি জিনিস গুরুত্বপূর্ণ, একটি হলো Javascript Library, আরেকটি হলো user interfaces। Library হলো কিছু collection of code, যেটা reused করে আমরা আমাদের application বানাতে পারি। React ও কিছু collection of code যেটা use করে আমরা আমাদের web application থেকে শুরু করে mobile, desktop application আর user interface বানাতে পারি।&lt;/p&gt;

&lt;p&gt;যখনই আমরা একটি অ্যাপ্লিকেশন নিয়ে কথা বলি, তখন মূলত এর দুটি অংশ থাকে। একটি হলো ফ্রন্টএন্ড (মানে ইউজার ইন্টারফেস), আরেকটি হলো ব্যাকএন্ড, যেখানে সমস্ত লজিক থাকে।&lt;br&gt;
ফ্রন্টএন্ড হলো সেই অংশ যেখানে ইউজার ইন্টারঅ্যাকশন করে, যেমন ব্রাউজ করে, বাটন ক্লিক করে, ফর্ম সাবমিট করে ইত্যাদি। তখন আমাদের ফ্রন্টএন্ড সেটাকে রেসপন্স করে ব্যাকএন্ড-এর সাহায্যে।&lt;br&gt;
আর ব্যাকএন্ড-এ থাকে প্রচুর জটিল লজিক এবং ডাটা, যেমন অথেনটিকেশন, অথরাইজেশন, ডাটা ম্যানিপুলেশন ইত্যাদি।&lt;br&gt;
কিন্তু React ব্যাকএন্ড নিয়ে একদমই concern না । React শুধুমাত্র ইউজার ইন্টারফেস নিয়েই কাজ করে।&lt;/p&gt;

&lt;p&gt;এখন যদি ওয়েব নিয়ে কথা বলি, আমরা জানি Javascript হলো ব্রাউজারের ডিফল্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ। কিন্তু React কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ নয়, এটা শুধু একটি Javascript Library।&lt;br&gt;
তার মানে, আমরা React-এ যা কিছুই করি না কেন, শেষ পর্যন্ত সেটা pure vanilla Javascript ছাড়া আর কিছুই না।&lt;/p&gt;

&lt;p&gt;আচ্ছা, এবার একটা প্রশ্ন করি। React তো ভাইয়া ২০১৩ সালে এসেছে, তাহলে কি আমরা এর আগে user interface বানাতাম না?&lt;br&gt;
হ্যাঁ, আমরা এর আগেও বানাতাম pure Javascript আর jQuery দিয়ে।&lt;br&gt;
এখন প্রশ্ন হলো, তাহলে আবার React এলো কেন? Javascript দিয়ে কী সমস্যা হতো?&lt;br&gt;
আসলে React কোন সমস্যার সমাধান করতে এসেছে তা বুঝতে হলে আমাদের একটু গভীরে ঢুকতে হবে। চলুন, একটা deep dive দেই...!&lt;/p&gt;

&lt;p&gt;আমরা একটা ছোট অ্যাপ্লিকেশন দিয়ে দেখব। আমরা একটা ছোট counter application বানিয়ে ফেলব, নিচে দেখছেন, সিম্পল একটা HTML কোড যেখানে counterNumber ও button নামে দুটি id দেওয়া হয়েছে।&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%2F0g6h7rsoulg2fic5ukjk.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%2F0g6h7rsoulg2fic5ukjk.png" alt="Image description" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;আপনি এখন JavaScript কোডের ছবিটি একটু খেয়াল করুন, সেখানে একটি সহজ কোড রয়েছে। এই কোডটি আপনাকে বুঝানো আমার উদ্দেশ্য নয়। আমি যা বুঝাতে চাচ্ছি, সেটা একটু খেয়াল করুন।&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%2Ftfjbbthpqyfw6ugcoz4e.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%2Ftfjbbthpqyfw6ugcoz4e.png" alt="Image description" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;counterNumber এবং button কে DOM Elements করে সিলেক্ট করা হয়েছে, তারপর addEventListener দিয়ে কাউন্টের মান ১ করে ইনক্রিমেন্ট করা হয়েছে। তারপরে counterNumberEl কে ধরে সেখানে তার মান আপডেট করা হয়েছে। এখানে আসলে কী হচ্ছে? ভালো করে খেয়াল করলে বুঝতে পারবেন যে, এখানে মূলত দুটি কাজ হচ্ছে:&lt;/p&gt;

&lt;p&gt;১. Elements গুলোকে ধরে তাদের সাথে কাজ করা, যা আমরা করতে চাই।&lt;br&gt;
২. UI (User Interface) কে ধরে সেটি আপডেট করা।&lt;/p&gt;

&lt;p&gt;তাহলে, এখানে সমস্যা কী? কোড তো কাজ করছে! তবে, ধরুন আপনার দুইটা counter application লাগবে। তখন কী করবেন?&lt;/p&gt;

&lt;p&gt;আপনাকে আবার সেই HTML-এ গিয়ে নতুন একটি div নিতে হবে, নতুন id গুলো দিয়ে আলাদাভাবে ধরতে হবে। এরপর পরবর্তীতে UI আপডেট করতে হবে।&lt;/p&gt;

&lt;p&gt;এখন, আমি শুধু দুইটা counter application এর কথা বলছি, কিন্তু যখন অনেক বেশি ইন্টারঅ্যাকশন ও কমপ্লেক্স উআই থাকবে তখন তো ডেভেলপারদের ফেটে যাবে। এইটাই হচ্ছে মূল সমস্যা! আপনি একদিকে functionality তৈরি করছেন, আর অন্যদিকে UI আপডেট করতে হচ্ছে, যেটা অনেক painful হয়ে যায়।&lt;/p&gt;

&lt;p&gt;এই বিশাল সমস্যাটি ফেইসবুকের মতো একটা কোম্পানি যখন ফেস করলো, তখন ফেইসবুকের একজন সফটওয়্যার ইঞ্জিনিয়ার Jordan Walke 2011 সালে PHP এর একটা Component Based Framework XHP-js থেকে ইন্সপায়ার হয়ে React.js তৈরি করেন। 2011 সালে এটা প্রথম ফেসবুকের নিউজফিডে ইম্পিলিমেন্ট করা হয় এবং ২০১২ সালে এটা ইন্সটাগ্রামে ব্যবহার করা হয়। ২০১৩ সালে React.js কে ওপেন সোর্স করে দেয়.&lt;/p&gt;

&lt;p&gt;আমরা তো এখন জানি কেন আমরা রিঅ্যাক্ট ব্যবহার করি। তো চলুন, এখন আমরা যে কাউন্টার অ্যাপ্লিকেশনটা ভ্যানিলা জেএস দিয়ে করেছিলাম, সেটা এখন রিঅ্যাক্ট ব্যবহার করে করি। তাহলে আপনাদের কনফিডেন্স আরো বেড়ে যাবে যে রিঅ্যাক্ট আসার পর ডেভেলপারদের জীবন কতটা সহজ হয়ে গেছে। চলুন কোডে যাওয়া যাক…&lt;/p&gt;

&lt;p&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%2F0i3hw8dh539dqyinltgw.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%2F0i3hw8dh539dqyinltgw.png" alt="Image description" width="800" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;এখানে আমি শুধু react.org সাইট থেকে তারা যেভাবে বলছে সেভাবে এই লিঙ্ক দিয়ে রিঅ্যাক্ট কনেক্ট করেছি। এখন যদি আমি react.js ফাইলে গিয়ে console.log(React) এবং console.log(ReactDOM) লিখি, তাহলে কনসোলে দেখতে পাবো ২টা অবজেক্ট চলে এসেছে, তার মানে আমাদের রিঅ্যাক্ট কানেক্ট হয়ে গেছে। খেয়াল করুন, এখানে body ট্যাগের মধ্যে একটি এম্পটি div ছাড়া আর কিছুই নেই, শুধু একটি id রয়েছে যার নাম root।&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%2F1ofw4k52flwfr0c0p4xb.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%2F1ofw4k52flwfr0c0p4xb.png" alt="Image description" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript এ DOM দিয়ে আমরা যেভাবে প্রথমে সিলেক্টর দিয়ে ধরে কাজ করেছিলাম, আমরা চাইলে DOM এ এলিমেন্টও ক্রিয়েট করতে পারি। ঠিক একইভাবে আমরা রিঅ্যাক্টে ও সেইভাবে এলিমেন্ট ক্রিয়েট করতে পারি। এখানে একটা div ক্রিয়েট করা হয়েছে, তার মধ্যে p ট্যাগ নিয়ে Hello World প্রিন্ট করা হয়েছে। এটা আপাতত কোন সমস্যা না দেখালেও, যখন আপনি অনেকগুলো এলিমেন্ট ক্রিয়েট করবেন, তখন তো জীবন শেষ! সেই একই কাজ বার বার তো এটা একটা সমস্যা। এজন্য রিঅ্যাক্ট তার নিজস্ব একটা মার্কআপ বানিয়েছে, যার নাম JSX (JavaScript XML)। এটা HTML এর মতো দেখালেও, এটা আসলে JSX।&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%2F4y59dxzny23dmc2ico3a.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%2F4y59dxzny23dmc2ico3a.png" alt="Image description" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;এই যে উপরের চিত্রে দেখতে পাচ্ছেন কীভাবে লেখা হয়েছে। কিন্তু কথা হলো, ব্রাউজার তো ভাই এই JSX বুঝবে না। তাই এই সমস্যাটা সমাধান করতে আমাদের ট্রান্সপাইলার Babel এসেছে, যা আমাদের এই JSX কে ট্রান্সপাইল করে ভ্যানিলা জেএস করে দেবে, যা ব্রাউজার বুঝবে।&lt;/p&gt;

&lt;p&gt;Babel কনেক্ট করার জন্য আমাদের তার ওয়েবসাইট &amp;gt; সেটআপ &amp;gt; &lt;code&gt;&amp;lt;script src=”https://unpkg.com/@babel/standalone/babel.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt; এই লিঙ্কটি কপি করে আমার HTML এর body ট্যাগের নিচে বসিয়ে দিলাম এবং আমাদের যে জেএস ফাইল আছে সেখানে &lt;code&gt;type=”text/babel”&lt;/code&gt; করে দিলাম।&lt;/p&gt;

&lt;p&gt;এখন এটা যেহেতু JSX, তাই আমরা এখানে জাভাস্ক্রিপ্টও লিখতে পারবো যা ইচ্ছে হবে। তো চলুন আমরা এই সিনট্যাক্সটাকে আরো সহজ করে ফেলি। প্রথমে এটাকে একটা জেএস ফাংশনের মধ্যে নিয়ে আসি।&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%2Fcuijz530kcuv64czel66.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%2Fcuijz530kcuv64czel66.png" alt="Image description" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;এখানে খেয়াল করুন, myElement tare আমি শুধু Increment নামক একটা ফাংশনের মধ্যে নিয়ে এসেছি এবং Increment ফাংশনকে  এভাবে করে দিয়ে React-এ আরো সহজ করে লেখা যায়। এখন আমরা এখানে জেএসও লিখতে পারবো, আমরা যদি আগের জেএস কোডটি দিয়ে এখানে কাজ করতাম, তাহলে কাজ করতো। কিন্তু React বলছে যে, তুমি যদি আমার উপায়ে স্টেট ম্যানেজমেন্ট করতে চাও, তাহলে তোমাকে UI আপডেট নিয়ে ভাবতে হবে না। তাই React-এ useState নামে তারা একটা ফাংশন দেয়, সেটা ব্যবহার করে কীভাবে করা যায় সেটাই দেখাচ্ছি।&lt;/p&gt;

&lt;p&gt;এই useState আমাদের increment বাটনের স্টেটের কাজ করবে। useState এ ডিফল্ট একটা ভ্যালু দিয়ে দিতে হয়, যা আমাদের স্টেটে ডিফল্ট শো করবে, এই ক্ষেত্রে আমাদের দিতে হবে 0। useState এই ফাংশন মূলত আমাদের একটা অ্যারে রিটার্ন করে, যেখানে ২টা জিনিস থাকে — একটা হলো আমরা যে ভ্যালুটি দিচ্ছি, আরেকটা হলো একটা ফাংশন যা স্টেটের মান আপডেট করার কাজটি করে থাকে। এখন তাই আমরা অ্যারে ডেস্ট্রাকচার করে আলাদা করে নিয়ে নিয়েছি।&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%2F9rwvgpucq7y6w44wmkk6.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%2F9rwvgpucq7y6w44wmkk6.png" alt="Image description" width="800" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;এখন আমরা চাইলে counter যেহেতু আমাদের ইনিশিয়াল ভ্যালু তাই, এখন রিটার্নের পর 0 এর জায়গায় চাইলে {counter} এভাবে দিতে পারি। এটাকে বলা হয় ইন্টারপোলেশন। এখন counter এর মান ডায়নামিকালি চেঞ্জ হয়ে যাবে। আর বাটনে onClick (এটা যেহেতু JSX, তাই এখানে ক্যামেলকেস ফলো করে লিখতে হবে যেমন onClick) একটি ফাংশনালিটি বলে দিতে হবে।&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%2Ftc9d0v9pa9s29iiqmnh5.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%2Ftc9d0v9pa9s29iiqmnh5.png" alt="Image description" width="800" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;এভাবে যদি দেই, তাহলে হয়ে গেলো, কিন্তু এখানে একটা সমস্যা আছে। আমি যদি setCounter এই ফাংশনটা এভাবে কল করে দিই, তাহলে এটা আগেই থেকে কল হয়ে থাকবে, যা আমরা চাই না। আমরা চাই যে, যখন কেউ বাটনে ক্লিক করবে তখনই এর মান বাড়বে। সেজন্য আমাদের একটা অ্যানোনিমাস অ্যারো ফাংশন করে দিতে হবে, তাহলে সমস্যা সমাধান হয়ে যাবে।&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%2Fcnpy49a1ovcs705s75cm.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%2Fcnpy49a1ovcs705s75cm.png" alt="Image description" width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;এখন আপনি যদি খেয়াল করেন যে এখানে আমরা কিন্তু ডোমের কোনো এলিমেন্টকে ধরে ম্যানুয়ালি UI আপডেট করি নি, এখানে শুধু React-কে বলেছি আমরা কী চাই, বাকি React নিজেই UI আপডেট করে দিয়েছে।&lt;/p&gt;

&lt;p&gt;এখন যখন আমরা JS-এর উদাহরণ দিয়েছিলাম, তখন JS-এ আমাদের মেজর যে সমস্যা ছিল, তা হলো — ম্যানুয়ালি UI আপডেট করতে হয়। আমরা যদি অ্যাপ্লিকেশনটি আরেকবার ব্যবহার করতে চাই, তাহলে আমাদের আবার একই কাজ বারবার করতে হতো।&lt;/p&gt;

&lt;p&gt;কিন্তু React-এ এই দুটি সমস্যাই সমাধান করে দেওয়া হয়েছে। আমরা দেখলাম কীভাবে ম্যানুয়ালি UI আপডেট না করে React কীভাবে কাজ করে, এখন আমরা দেখব যে যদি এই অ্যাপ্লিকেশনটি আমাদের ২-৩ জায়গায় ব্যবহার করতে হয়, তখন React কীভাবে সাহায্য করে।&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%2Fgkmlgwjmtqlqy0ppeti2.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%2Fgkmlgwjmtqlqy0ppeti2.png" alt="Image description" width="800" height="648"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;এখানে দেখেন, আমি শুধু &amp;lt;&amp;gt;&amp;lt;/&amp;gt; এর মধ্যে increment function টাকে 2 বার কল করে দিচ্ছি, কাজ শেষ। এখন সবচেয়ে ইন্টারেস্টিং ব্যাপার হলো আপনি ২টি অ্যাপ্লিকেশন আলাদা আলাদা ভাবে কাজ করতে পারবেন, মানে আলাদা আলাদা ভাবে state manage হবে। মানে আপনি বুঝতে পারছেন, আপনি চাইলে পুরো ওয়েবসাইটের যেকোনো জায়গায় ব্যবহার করতে পারবেন, তাও আবার ডিফারেন্ট ডিফারেন্ট জায়গা আলাদা আলাদা হবে, মানে একটা আরেকটার সঙ্গে সম্পর্কিত নয়। This is the power of Reactjs.&lt;/p&gt;

&lt;p&gt;মূল কথা হলো React-এ আপনার functionality কী হবে সেটা আপনি বলবেন এবং React সেটা অনুসরণ করে নিজেই UI আপডেট করে নেবে। This is the beauty of ReactJS।&lt;/p&gt;

&lt;p&gt;তাহলে আমরা এতক্ষণে React কী? কেন আমরা React ব্যবহার করি? কোন সমস্যা সমাধান করতে React এসেছে, সেটা এখন পুরোপুরি বুঝতে পারছি। ইন্টারভিউ বোর্ডে আর আপনাকে এমন প্রশ্ন করে আটকে রাখতে পারবে না। এতটুকু ধৈর্য ধরে সম্পূর্ণ পড়া সহজ কাজ না, ভাইয়া। আপনি এটা করে ফেলেছেন, আপনার জন্য শুভকামনা।&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>kawsarkabir</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Delete Documents, Drop Collection in MongoDB</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Sat, 22 Jun 2024 04:30:28 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/delete-documents-drop-collection-in-mongodb-4i09</link>
      <guid>https://forem.com/kawsarkabir/delete-documents-drop-collection-in-mongodb-4i09</guid>
      <description>&lt;p&gt;To delete documents in MongoDB, you can use the &lt;code&gt;deleteOne()&lt;/code&gt; or &lt;code&gt;deleteMany()&lt;/code&gt; methods. These methods allow you to remove one or multiple documents, respectively.&lt;/p&gt;

&lt;p&gt;Here’s an example of using the &lt;code&gt;deleteOne()&lt;/code&gt; method to remove a single document:&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;collection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deleteOne&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="nc"&gt;ObjectId&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;your_document_id_here&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;p&gt;If you want to delete all documents, you can use the &lt;code&gt;deleteMany()&lt;/code&gt; method:&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;collection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deleteMany&lt;/span&gt;&lt;span class="p"&gt;({});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Additionally, you can delete all documents that match a specific condition:&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;collection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deleteMany&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;your_query_here&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To delete an entire collection, use the &lt;code&gt;drop()&lt;/code&gt; method:&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;collection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;drop&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This method removes the collection entirely, so it should be used with caution, as all data will be permanently deleted. Make sure to back up your data before performing this operation.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>mongodb</category>
      <category>database</category>
      <category>kawsarkabir</category>
    </item>
    <item>
      <title>$Unset, $Pop, $Pull, $PullAll in MongoDB</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Mon, 17 Jun 2024 16:12:29 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/unset-pop-pull-pullall-in-mongodb-4jfg</link>
      <guid>https://forem.com/kawsarkabir/unset-pop-pull-pullall-in-mongodb-4jfg</guid>
      <description>&lt;h3&gt;
  
  
  $unset
&lt;/h3&gt;

&lt;p&gt;If we want to remove a field from a document in a MongoDB collection, we can use the &lt;code&gt;$unset&lt;/code&gt; operator. First, let's add some data to the database, then we'll remove a field from that data.&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;persons&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;insertMany&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Kawsar&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;profession&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;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Emanul&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;profession&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="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;persons&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="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Kawsar&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;$unset&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&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;ul&gt;
&lt;li&gt;In the code above, the &lt;code&gt;age&lt;/code&gt; field is removed from the document where &lt;code&gt;name&lt;/code&gt; is &lt;code&gt;Kawsar&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  $pop
&lt;/h3&gt;

&lt;p&gt;To remove the first or last element of an array in a document, we use the &lt;code&gt;$pop&lt;/code&gt; operator. First, let's insert a document into the database:&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;products&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;insertOne&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;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;instock&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="na"&gt;details&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;14QQ&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;make&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Clothes Corp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;ratings&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;by&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Customer007&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;rating&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
  &lt;span class="na"&gt;tags&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;apparel&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;clothing&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;ul&gt;
&lt;li&gt;Here, we have added a document to the &lt;code&gt;products&lt;/code&gt; collection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, if we want to remove the first or last item from the &lt;code&gt;ratings&lt;/code&gt; array, we can use &lt;code&gt;$pop&lt;/code&gt;:&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;products&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;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$pop&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;ratings&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="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;// Use 1 to remove the last element&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;products&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;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$pop&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;ratings&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="c1"&gt;// Use -1 to remove the first element&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  $pull
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;$pull&lt;/code&gt; operator is used to remove all instances of a specific value from an array in a document.&lt;/p&gt;

&lt;p&gt;For example, if we want to remove the &lt;code&gt;clothing&lt;/code&gt; tag from the &lt;code&gt;tags&lt;/code&gt; array, we can use &lt;code&gt;$pull&lt;/code&gt;:&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;products&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="na"&gt;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$pull&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;clothing&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;h3&gt;
  
  
  $pullAll
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;$pullAll&lt;/code&gt; operator is used to remove multiple specific values from an array in a document.&lt;/p&gt;

&lt;p&gt;For example, if we want to remove multiple tags from the &lt;code&gt;tags&lt;/code&gt; array, we can use &lt;code&gt;$pullAll&lt;/code&gt;:&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;products&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;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$pullAll&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;tags&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;clothing&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;apparel&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;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;In the code above, the tags &lt;code&gt;"clothing"&lt;/code&gt; and &lt;code&gt;"apparel"&lt;/code&gt; are removed from the &lt;code&gt;tags&lt;/code&gt; array in the document with &lt;code&gt;_id: 100&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>mongodb</category>
      <category>programming</category>
      <category>kawsarkabir</category>
    </item>
    <item>
      <title>$Set, $AddToSet, $Push in MongoDB</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Sun, 16 Jun 2024 17:09:20 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/set-addtoset-push-in-mongodb-2a95</link>
      <guid>https://forem.com/kawsarkabir/set-addtoset-push-in-mongodb-2a95</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;$Set, $AddToSet, $Push&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  $set
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;$set&lt;/code&gt; মানে হচ্ছে কোন কিছুর মান সেট করা। আমাদের ডাটাবেজে যদি কোন কিছুর আপডেট করতে হয় তাহলে আমরা এই অপারেটর ব্যাবহার করি। কিভাবে আমরা আমাদের ডাটাকে আপডেট করতে পারি সেটার উদাহরণ দেওয়া যাক:&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;products&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;insertOne&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;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;instock&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="na"&gt;details&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;14QQ&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;make&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Clothes Corp&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;ratings&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;by&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Customer007&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;rating&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
  &lt;span class="na"&gt;tags&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;apparel&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;clothing&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;ul&gt;
&lt;li&gt;
&lt;code&gt;products&lt;/code&gt; কালেকশনে আমরা একটা ডাটা আমাদের ডাটাবেজে এড করে নিলাম।&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  কিভাবে আমরা আপডেট করতে পারি
&lt;/h3&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;products&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;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;$set&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;quantity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;details&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;2600&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;make&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fashionaires&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;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  $AddToSet
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;$set&lt;/code&gt; অপারেটর এর একটা অসুবিধা আছে, যেমন আপনাকে যদি বলা হয় যে &lt;code&gt;tags&lt;/code&gt; প্রপার্টি টা আপডেট করতে তাহলেই বিপত্তি বেজে যাবে। চলুন দেখা যাক:&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;products&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;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;$set&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;accessories&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;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আপনি যদি এভাবে ব্যাবহার করেন তাহলে আগের &lt;code&gt;tags&lt;/code&gt; অ্যারের মান পুরোটাই রেপ্লেস হয়ে শুধু &lt;code&gt;tags: "clothing"&lt;/code&gt; হয়ে যাবে। কিন্তু আমরা চাচ্ছি যে আগের আইটেমগুলোও থাকবে। তাহলে আমরা এই সমস্যা সমাধানের জন্য আরেকটা অপারেটর ব্যাবহার করতে পারি, সেটা হলো &lt;code&gt;$addToSet&lt;/code&gt;:&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;products&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;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;$addToSet&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;accessories&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;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;আপনি যদি এভাবে এড করেন তাহলে সুন্দরভাবে নতুন করে এড হয়ে যাবে। আর যদি এই ভ্যালুটা অলরেডি থেকে থাকে তাহলে আর মডিফাই হবে না। আর আপনি যদি চান আপনার ডুপ্লিকেট এলিমেন্ট লাগবে, সেক্ষেত্রে &lt;code&gt;$push&lt;/code&gt; ব্যাবহার করতে পারেন।&lt;/p&gt;

&lt;h3&gt;
  
  
  $push
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;$push&lt;/code&gt; অপারেটর ব্যাবহার করে আমরা কোনো অ্যারের মধ্যে নতুন আইটেম যোগ করতে পারি। এই অপারেটরটি অ্যারের শেষে নতুন আইটেম যোগ করে এবং ডুপ্লিকেট ভ্যালু রাখার ক্ষেত্রেও কার্যকর। উদাহরণস্বরূপ, আমরা যদি &lt;code&gt;ratings&lt;/code&gt; অ্যারের মধ্যে নতুন রেটিং যোগ করতে চাই, তাহলে আমরা &lt;code&gt;$push&lt;/code&gt; ব্যাবহার করতে পারি:&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;products&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;_id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&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;ratings&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;by&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Customer008&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;rating&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;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;ul&gt;
&lt;li&gt;উপরের কোডটিতে, &lt;code&gt;_id: 100&lt;/code&gt; ডকুমেন্টের &lt;code&gt;ratings&lt;/code&gt; অ্যারের মধ্যে &lt;code&gt;{ by: "Customer008", rating: 5 }&lt;/code&gt; নতুন একটি রেটিং যোগ করা হয়েছে।&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;এইভাবে &lt;code&gt;$push&lt;/code&gt; অপারেটর ব্যবহার করে অ্যারে আপডেট করতে পারি।&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>mongodb</category>
      <category>programming</category>
      <category>kawsarkabir</category>
    </item>
    <item>
      <title>$All and $ElemMatch in MongoDB</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Fri, 14 Jun 2024 14:41:52 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/all-and-elemmatch-in-mongodb-4od6</link>
      <guid>https://forem.com/kawsarkabir/all-and-elemmatch-in-mongodb-4od6</guid>
      <description>&lt;h2&gt;
  
  
  Using $All and $ElemMatch in MongoDB
&lt;/h2&gt;

&lt;h3&gt;
  
  
  $all
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;$all&lt;/code&gt; operator is used with arrays. Let's say you have an array field called &lt;code&gt;interests&lt;/code&gt;. If you want to find documents where the &lt;code&gt;interests&lt;/code&gt; include "Travelling", you can easily do that:&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="c1"&gt;// array field&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;interests&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Travelling&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;Gaming&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;Reading&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;students&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;interests&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Travelling&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;  &lt;span class="c1"&gt;// 'students' is the name of the collection.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, if you are asked to find documents where the &lt;code&gt;interests&lt;/code&gt; include both "Travelling" and "Reading", how would you do that?&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;students&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;interests&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;Travelling&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;Reading&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;p&gt;If you run this query, it will throw an error because this query looks for an exact match of the array &lt;code&gt;["Travelling", "Reading"]&lt;/code&gt;. To find documents that include both "Travelling" and "Reading" regardless of their positions in the array, you need the &lt;code&gt;$all&lt;/code&gt; operator:&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;students&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;interests&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;Travelling&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;Reading&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;ul&gt;
&lt;li&gt;With &lt;code&gt;$all&lt;/code&gt;, the positions of the elements in the array do not matter. As long as the specified elements are present in the array, the document will be retrieved.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  $elemMatch
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;$elemMatch&lt;/code&gt; operator is used for matching elements in an array of objects.&lt;/p&gt;

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

&lt;p&gt;Suppose your &lt;code&gt;students&lt;/code&gt; collection has documents with a &lt;code&gt;grades&lt;/code&gt; array field, where each element is an object representing a subject and a score:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"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;"grades"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"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;"score"&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="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"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;"English"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"score"&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="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"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;"grades"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"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;"score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"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;"English"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"score"&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="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"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;"grades"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"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;"score"&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="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"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;"English"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"score"&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="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to find students who scored more than 80 in Math, you can use the &lt;code&gt;$elemMatch&lt;/code&gt; operator:&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;students&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;grades&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$elemMatch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Math&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;score&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;80&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="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query will return the documents for Alice and Charlie, but not for Bob because his Math score is not greater than 80.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;$all&lt;/code&gt;&lt;/strong&gt; is used to match elements in an array.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;$elemMatch&lt;/code&gt;&lt;/strong&gt; is used to match elements in an array of objects, where each element needs to satisfy multiple conditions.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>database</category>
      <category>mongodb</category>
      <category>kawsarkabir</category>
    </item>
    <item>
      <title>🎯 Cracking the Frontend Developer Interview: What You Need to Know</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Thu, 13 Jun 2024 18:08:08 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/cracking-the-frontend-developer-interview-what-you-need-to-know-3fp2</link>
      <guid>https://forem.com/kawsarkabir/cracking-the-frontend-developer-interview-what-you-need-to-know-3fp2</guid>
      <description>&lt;p&gt;Hello dev.to community!&lt;/p&gt;

&lt;p&gt;As a frontend developer, preparing for job interviews can be both exciting and challenging. Whether you're a seasoned professional or just starting out, it's crucial to be ready for the kinds of questions you might face. In this post, I'll share some common frontend developer interview questions, tips on how to answer them, and strategies for effective preparation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Frontend Developer Interview Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Can you explain the box model in CSS?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; The box model is a fundamental concept in CSS that describes the rectangular boxes generated for elements in the document tree. It consists of margins, borders, padding, and the content itself. Understanding how to manipulate these properties allows you to control the layout and appearance of web elements.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What are some differences between &lt;code&gt;==&lt;/code&gt; and &lt;code&gt;===&lt;/code&gt; in JavaScript?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; The &lt;code&gt;==&lt;/code&gt; operator compares two values for equality after converting both values to a common type (type coercion), while the &lt;code&gt;===&lt;/code&gt; operator compares both value and type without converting the values. For example, &lt;code&gt;5 == '5'&lt;/code&gt; returns &lt;code&gt;true&lt;/code&gt;, but &lt;code&gt;5 === '5'&lt;/code&gt; returns &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How does Flexbox work, and what are some of its common properties?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Flexbox is a layout model that allows you to design complex layouts with ease. It provides a more efficient way to lay out, align, and distribute space among items in a container. Common properties include &lt;code&gt;display: flex&lt;/code&gt;, &lt;code&gt;flex-direction&lt;/code&gt;, &lt;code&gt;justify-content&lt;/code&gt;, &lt;code&gt;align-items&lt;/code&gt;, and &lt;code&gt;flex-wrap&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Can you describe the concept of event delegation in JavaScript?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Event delegation is a technique where a single event listener is added to a parent element to manage events for multiple child elements. This is efficient because it reduces the number of event listeners needed and can dynamically handle new elements added to the DOM.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. What are Single Page Applications (SPAs), and what are their advantages?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; SPAs are web applications that load a single HTML page and dynamically update content as the user interacts with the app. Advantages include faster page loads, reduced server load, and a more seamless user experience since the entire page doesn't need to reload.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for Effective Interview Preparation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Understand the Fundamentals
&lt;/h3&gt;

&lt;p&gt;Make sure you have a strong grasp of HTML, CSS, and JavaScript. Understanding the basics will help you tackle more complex questions with confidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Practice Coding Challenges
&lt;/h3&gt;

&lt;p&gt;Websites like LeetCode, HackerRank, and CodeSignal offer a variety of coding challenges that can help you practice problem-solving and algorithmic thinking. Regular practice will improve your coding skills and speed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Build and Showcase Projects
&lt;/h3&gt;

&lt;p&gt;Having a portfolio of projects demonstrates your skills and experience. Build a variety of projects, from simple static sites to complex web applications. Make sure your code is clean and well-documented.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review Popular Frameworks and Libraries
&lt;/h3&gt;

&lt;p&gt;Familiarize yourself with popular frontend frameworks and libraries like React, Vue, and Angular. Understand their core concepts, use cases, and how to implement them in real-world scenarios.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mock Interviews
&lt;/h3&gt;

&lt;p&gt;Participate in mock interviews with friends, mentors, or through platforms like Pramp and Interviewing.io. This will help you get comfortable with the interview format and receive constructive feedback.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stay Updated
&lt;/h3&gt;

&lt;p&gt;The tech world is constantly evolving. Follow blogs, attend webinars, and join developer communities to stay updated on the latest trends, tools, and best practices in frontend development.&lt;/p&gt;

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

&lt;p&gt;Preparing for a frontend developer interview requires a mix of technical knowledge, practical experience, and interview practice. By focusing on these key areas, you'll be well-equipped to tackle any interview question with confidence. What strategies have you found helpful in preparing for frontend developer interviews? Share your tips and experiences in the comments!&lt;/p&gt;

&lt;p&gt;Good luck with your interview preparation!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>career</category>
      <category>interview</category>
    </item>
    <item>
      <title>MongoDB Query Operators: $and, $or, $exists, $type, $size</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Wed, 12 Jun 2024 17:22:54 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/mongodb-query-operators-and-or-exists-type-size-1lnp</link>
      <guid>https://forem.com/kawsarkabir/mongodb-query-operators-and-or-exists-type-size-1lnp</guid>
      <description>&lt;p&gt;When working with MongoDB, understanding various query operators is crucial for efficient data retrieval. This article will dive into the usage of some fundamental operators like &lt;code&gt;$and&lt;/code&gt;, &lt;code&gt;$or&lt;/code&gt;, &lt;code&gt;$exists&lt;/code&gt;, &lt;code&gt;$type&lt;/code&gt;, and &lt;code&gt;$size&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  $and Operator
&lt;/h2&gt;

&lt;p&gt;Let's say we have a database named &lt;code&gt;school&lt;/code&gt; with a &lt;code&gt;students&lt;/code&gt; collection. We want to retrieve students whose age is not 5 and less than 10. This can be done in two ways:&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$ne&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;span class="na"&gt;$lt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&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="nf"&gt;project&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;age&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="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;age&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="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;students&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;$and&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$ne&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;span class="na"&gt;$lt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;10&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="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;project&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;age&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="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;age&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the first example, we implicitly combine conditions within a single field. In the second, we explicitly use the &lt;code&gt;$and&lt;/code&gt; operator. Both queries search for documents where the age is not 5 and is less than 10, then project only the age field and sort the results in ascending order.&lt;/p&gt;

&lt;h2&gt;
  
  
  $or Operator
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;$or&lt;/code&gt; operator works oppositely to &lt;code&gt;$and&lt;/code&gt;, meaning it returns documents that satisfy at least one of the conditions. While no new example is provided, it operates similarly to &lt;code&gt;$and&lt;/code&gt;, combining conditions but returning results if any condition is true.&lt;/p&gt;

&lt;h2&gt;
  
  
  $exists Operator
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;$exists&lt;/code&gt; operator checks the presence or absence of a field. For instance, to find students who do not have an age property or an email property:&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$exists&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="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$exists&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&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;ul&gt;
&lt;li&gt;
&lt;code&gt;$exists: true&lt;/code&gt; returns documents with the &lt;code&gt;age&lt;/code&gt; field present.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$exists: false&lt;/code&gt; returns documents without the &lt;code&gt;age&lt;/code&gt; field.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note that &lt;code&gt;$exists&lt;/code&gt; only checks for the presence of the field, not its value.&lt;/p&gt;

&lt;h2&gt;
  
  
  $type Operator
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;$type&lt;/code&gt; operator allows us to query documents based on the data type of a field's value. For example, to find students where the &lt;code&gt;age&lt;/code&gt; field is stored as a string:&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;string&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;
  
  
  $size Operator
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;$size&lt;/code&gt; operator is used to query arrays by their size. For example, to find documents where the &lt;code&gt;friends&lt;/code&gt; array is empty:&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;test&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;friends&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$size&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The &lt;code&gt;$size&lt;/code&gt; operator only works with array fields.&lt;/p&gt;

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

&lt;p&gt;These operators—&lt;code&gt;$and&lt;/code&gt;, &lt;code&gt;$or&lt;/code&gt;, &lt;code&gt;$exists&lt;/code&gt;, &lt;code&gt;$type&lt;/code&gt;, and &lt;code&gt;$size&lt;/code&gt;—are essential tools for querying MongoDB collections. Understanding their usage can significantly enhance your ability to retrieve and manipulate data efficiently. Whether you're filtering documents based on multiple conditions, checking for the presence of fields, or querying specific data types and array sizes, these operators provide powerful capabilities for precise data management.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>$in, $nin, $implicit in MongoDB: Examples and Usage🔥</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Tue, 11 Jun 2024 20:20:16 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/in-nin-implicit-in-mongodb-examples-and-usage-46jj</link>
      <guid>https://forem.com/kawsarkabir/in-nin-implicit-in-mongodb-examples-and-usage-46jj</guid>
      <description>&lt;h2&gt;
  
  
  Understanding &lt;code&gt;$implicit&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Let's first understand how &lt;code&gt;$implicit&lt;/code&gt; works. Suppose you're asked to fetch data for individuals aged more than 18 and less than 30. How would you do that? Let's explore through an example:&lt;/p&gt;

&lt;p&gt;Imagine we have a database named &lt;code&gt;school&lt;/code&gt; with a collection called &lt;code&gt;students&lt;/code&gt;.&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$gte&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;$lte&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&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;ul&gt;
&lt;li&gt;
&lt;code&gt;db.students&lt;/code&gt; indicates that we are working with the &lt;code&gt;students&lt;/code&gt; collection.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;find&lt;/code&gt; method is used to search for all the matching data.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{ age: { $gte: 18, $lte: 30 } }&lt;/code&gt; is the search criteria, which specifies that we are looking for documents where the &lt;code&gt;age&lt;/code&gt; is greater than or equal to 18 and less than or equal to 30.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Using &lt;code&gt;$in&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Now, suppose you are asked to fetch data for individuals aged 18, 20, 10, and 4. You can easily achieve this using &lt;code&gt;$in&lt;/code&gt;. Let's understand through an 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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$in&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&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="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;age&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;db.students&lt;/code&gt; indicates that we are working with the &lt;code&gt;students&lt;/code&gt; collection.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;find&lt;/code&gt; method is used to search for all the matching data.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{ age: { $in: [18, 20, 10, 4] } }&lt;/code&gt; is the search criteria, specifying that we are looking for documents where the &lt;code&gt;age&lt;/code&gt; matches any of the values in the array &lt;code&gt;[18, 20, 10, 4]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{ age: 1 }&lt;/code&gt; specifies that only the &lt;code&gt;age&lt;/code&gt; property will be shown in the results.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Using &lt;code&gt;$nin&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;$nin&lt;/code&gt; is the opposite of &lt;code&gt;$in&lt;/code&gt;. In this case, you will get all data except for the values you provide. For 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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$nin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&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="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;age&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{ age: { $nin: [18, 20, 10, 4] } }&lt;/code&gt; is the search criteria, specifying that we are looking for documents where the &lt;code&gt;age&lt;/code&gt; does not match any of the values in the array &lt;code&gt;[18, 20, 10, 4]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{ age: 1 }&lt;/code&gt; specifies that only the &lt;code&gt;age&lt;/code&gt; property will be shown in the results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to check out my GitHub &lt;a href="https://github.com/kawsarkabir" rel="noopener noreferrer"&gt;Kawsar Kabir&lt;/a&gt; and connect with me on &lt;a href="https://www.linkedin.com/in/kawsarkabir/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>database</category>
      <category>kawsarkabir</category>
    </item>
    <item>
      <title>Essential MongoDB Operators: A Guide to Effective Data Management</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Tue, 11 Jun 2024 06:56:14 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/essential-mongodb-operators-a-guide-to-effective-data-management-445b</link>
      <guid>https://forem.com/kawsarkabir/essential-mongodb-operators-a-guide-to-effective-data-management-445b</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;MongoDB এর কিছু অপারেটর:&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  $eq
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;$eq&lt;/code&gt; দ্বারা বুঝাই যে কোন কিছু সমান কিনা ? মানে ধরুন, আমাদের একটি ডাটাবেস আছে যার নাম school, এবং এতে একটি students নামের কালেকশন রয়েছে। এখন আপনাকে বলা হলো যে যেসব স্টুডেন্টসদের বয়স ১৮ তাদের ডাটা লাগবে তখন কি করবেন ? হ্যাঁ তখন আপনি এই অপারেটর দিয়ে কাজ টা করতে পারবেন আসুন উদাহারণ দিয়ে দেখি :&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$eq&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;18&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;ul&gt;
&lt;li&gt;এখানে, &lt;code&gt;db.students&lt;/code&gt; নির্দেশ করছে যে আমরা students কালেকশনে কাজ করছি।&lt;/li&gt;
&lt;li&gt;find মেথডটি সব গুলো ডাটা খুঁজে বের করার জন্য ব্যবহৃত হচ্ছে।&lt;/li&gt;
&lt;li&gt;{age: {$eq: 18}} হলো সার্চ ক্রাইটেরিয়া যা নির্দেশ করছে যে আমরা সেই ডকুমেন্টটি খুঁজছি যাদের বয়স ১৮ এর সমান।&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  $ne
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;$ne&lt;/code&gt; দ্বারা বুঝাই যে সমান না। মানে ধরুন, এখন আপনাকে বলা হলো যে যেসব স্টুডেন্টসদের বয়স ১৮ এর সমান না তাদের ডাটা লাগবে তখন কি করবেন ? হ্যাঁ তখন আপনি এই অপারেটর দিয়ে কাজ টা করতে পারবেন আসুন উদাহারণ দিয়ে দেখি :&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$ne&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;18&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;ul&gt;
&lt;li&gt;এখানে, &lt;code&gt;db.students&lt;/code&gt; নির্দেশ করছে যে আমরা students কালেকশনে কাজ করছি।&lt;/li&gt;
&lt;li&gt;find মেথডটি সব গুলো ডাটা খুঁজে বের করার জন্য ব্যবহৃত হচ্ছে।&lt;/li&gt;
&lt;li&gt;{age: {$ne: 18}} হলো সার্চ ক্রাইটেরিয়া যা নির্দেশ করছে যে আমরা সেই ডকুমেন্টটি খুঁজছি যাদের বয়স ১৮ এর সমান না ।&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  $gt
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;$gt&lt;/code&gt; দ্বারা বুঝাই greater than &amp;gt; মানে ধরুন, এখন আপনাকে বলা হলো যে যেসব স্টুডেন্টসদের বয়স ১৮ এর বেশি তাদের ডাটা লাগবে তখন কি করবেন ? হ্যাঁ তখন আপনি এই অপারেটর দিয়ে কাজ টা করতে পারবেন আসুন উদাহারণ দিয়ে দেখি :&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;students&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;age&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;18&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;ul&gt;
&lt;li&gt;এখানে, &lt;code&gt;db.students&lt;/code&gt; নির্দেশ করছে যে আমরা students কালেকশনে কাজ করছি।&lt;/li&gt;
&lt;li&gt;find মেথডটি সব গুলো ডাটা খুঁজে বের করার জন্য ব্যবহৃত হচ্ছে।&lt;/li&gt;
&lt;li&gt;{age: {$ge: 18}} হলো সার্চ ক্রাইটেরিয়া যা নির্দেশ করছে যে আমরা সেই ডকুমেন্টটি খুঁজছি যাদের বয়স ১৮ এর বেশি ।&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  $gte
&lt;/h2&gt;

&lt;p&gt;আবার যদি বলে ১৮ এর বেশি বা সমান । অর্থাৎ greater than &amp;gt;= এই ক্ষেত্রে আমাদের আরেকটা অপারেটর আছে সেটা হলো &lt;code&gt;$gte&lt;/code&gt;&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$gte&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;18&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;ul&gt;
&lt;li&gt;এখানে, &lt;code&gt;db.students&lt;/code&gt; নির্দেশ করছে যে আমরা students কালেকশনে কাজ করছি।&lt;/li&gt;
&lt;li&gt;find মেথডটি সব গুলো ডাটা খুঁজে বের করার জন্য ব্যবহৃত হচ্ছে।&lt;/li&gt;
&lt;li&gt;{age: {$gte: 18}} হলো সার্চ ক্রাইটেরিয়া যা নির্দেশ করছে যে আমরা সেই ডকুমেন্টটি খুঁজছি যাদের বয়স ১৮ এর বেশি বা সমান।&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  $lt
&lt;/h2&gt;

&lt;p&gt;যদি বলে ১৮ এর কম লাগবে । অর্থাৎ less than &amp;lt; এই ক্ষেত্রে আমাদের আরেকটা অপারেটর আছে সেটা হলো &lt;code&gt;$lt&lt;/code&gt;&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$lt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;18&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;ul&gt;
&lt;li&gt;এখানে, &lt;code&gt;db.students&lt;/code&gt; নির্দেশ করছে যে আমরা students কালেকশনে কাজ করছি।&lt;/li&gt;
&lt;li&gt;find মেথডটি সব গুলো ডাটা খুঁজে বের করার জন্য ব্যবহৃত হচ্ছে।&lt;/li&gt;
&lt;li&gt;{age: {$lt: 18}} হলো সার্চ ক্রাইটেরিয়া যা নির্দেশ করছে যে আমরা সেই ডকুমেন্টটি খুঁজছি যাদের বয়স ১৮ এর কম।&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  $lte
&lt;/h2&gt;

&lt;p&gt;আবার যদি বলে ১৮ এর কম বা সমান লাগবে । অর্থাৎ less than &amp;lt;= এই ক্ষেত্রে আমাদের আরেকটা অপারেটর আছে সেটা হলো &lt;code&gt;$lte&lt;/code&gt;&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;students&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;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;$lte&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;18&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;ul&gt;
&lt;li&gt;এখানে, &lt;code&gt;db.students&lt;/code&gt; নির্দেশ করছে যে আমরা students কালেকশনে কাজ করছি।&lt;/li&gt;
&lt;li&gt;find মেথডটি সব গুলো ডাটা খুঁজে বের করার জন্য ব্যবহৃত হচ্ছে।&lt;/li&gt;
&lt;li&gt;{age: {$lte: 18}} হলো সার্চ ক্রাইটেরিয়া যা নির্দেশ করছে যে আমরা সেই ডকুমেন্টটি খুঁজছি যাদের বয়স ১৮ এর কম বা সমান।&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mongodb</category>
      <category>kawsarkabir</category>
      <category>database</category>
    </item>
    <item>
      <title>insertOne, insertMany and find, findOne in MongoDB</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Thu, 30 May 2024 10:31:07 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/insertone-insertmany-and-find-findone-in-mongodb-1b56</link>
      <guid>https://forem.com/kawsarkabir/insertone-insertmany-and-find-findone-in-mongodb-1b56</guid>
      <description>&lt;p&gt;In databases, the &lt;code&gt;insertOne&lt;/code&gt; and &lt;code&gt;insertMany&lt;/code&gt; methods are used to add new data. &lt;code&gt;insertOne&lt;/code&gt; is used to insert a single document, while &lt;code&gt;insertMany&lt;/code&gt; can be used to insert multiple documents at once. Let’s understand this with examples:&lt;/p&gt;

&lt;h4&gt;
  
  
  Adding a single document (insertOne):
&lt;/h4&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;students&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;insertOne&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;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Rahim&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;abc@gmail.com&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;gender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Male&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;h4&gt;
  
  
  Adding multiple documents at once (insertMany):
&lt;/h4&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;students&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;insertMany&lt;/span&gt;&lt;span class="p"&gt;([&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;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Karim&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;abc@gmail.com&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;gender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Male&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;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Ayesha&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;abc@gmail.com&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;gender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Female&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;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Fatima&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;abc@gmail.com&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;gender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Female&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;ul&gt;
&lt;li&gt;Here, &lt;code&gt;db.students&lt;/code&gt; indicates that we are working in the &lt;code&gt;students&lt;/code&gt; collection.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;{}&lt;/code&gt; represents a JSON object being inserted.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Find &amp;amp; FindOne&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;Find&lt;/code&gt; means to search. Suppose we want to view the data that has been added to the database. The &lt;code&gt;find()&lt;/code&gt; and &lt;code&gt;findOne()&lt;/code&gt; methods help us with this task. The &lt;code&gt;find()&lt;/code&gt; method retrieves all the data, while the &lt;code&gt;findOne()&lt;/code&gt; method is used to retrieve specific data. Let's look at examples:&lt;/p&gt;

&lt;h4&gt;
  
  
  To find all data:
&lt;/h4&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;students&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;find()&lt;/code&gt; method is used to find all the data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  To find specific data:
&lt;/h4&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;students&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findOne&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;1&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;findOne()&lt;/code&gt; method is used to find a specific document.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{ id: 1 }&lt;/code&gt; is the search criterion indicating that we are looking for the document with &lt;code&gt;id: 1&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Field Filtering&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Suppose someone asks for data of only female students. In this case, we can access data for a specific field using &lt;code&gt;Field Filtering&lt;/code&gt;:&lt;/p&gt;

&lt;h4&gt;
  
  
  To find data for a specific field:
&lt;/h4&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;students&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;gender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Female&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{ gender: 'Female' }&lt;/code&gt; is the search criterion indicating that we are looking for documents where the &lt;code&gt;gender&lt;/code&gt; field is &lt;code&gt;Female&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Project&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;The previous task can also be done using the &lt;code&gt;Project()&lt;/code&gt; method, but the difference is that you cannot use &lt;code&gt;findOne()&lt;/code&gt; with &lt;code&gt;Project()&lt;/code&gt;, only &lt;code&gt;find()&lt;/code&gt; can be used.&lt;/p&gt;

&lt;h4&gt;
  
  
  To find data for a specific field using the &lt;code&gt;Project()&lt;/code&gt; method:
&lt;/h4&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;students&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;gender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Female&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;project&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;name&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;email&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{ gender: 'Female' }&lt;/code&gt; is the search criterion indicating that we are looking for documents where the &lt;code&gt;gender&lt;/code&gt; field is &lt;code&gt;Female&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;{ name: 1, email: 1 }&lt;/code&gt; means we want to get the &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;email&lt;/code&gt; fields of the female students.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is how we can insert and find data in MongoDB!&lt;/p&gt;

</description>
      <category>mongobd</category>
      <category>queries</category>
      <category>kawsarkabir</category>
    </item>
    <item>
      <title>🚀 Exciting React Project Showcase for Beginners! 🌟</title>
      <dc:creator>KAWSAR KABIR</dc:creator>
      <pubDate>Wed, 15 Nov 2023 20:10:35 +0000</pubDate>
      <link>https://forem.com/kawsarkabir/exciting-react-project-showcase-for-beginners-32ca</link>
      <guid>https://forem.com/kawsarkabir/exciting-react-project-showcase-for-beginners-32ca</guid>
      <description>&lt;p&gt;Hey React enthusiasts! 👋 I've been working on a collection of beginner-friendly React projects, and I'm thrilled to share them with you. Whether you're just starting your React journey or looking for inspiration, these projects are designed to help you learn and have fun along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explore the Showcase: &lt;a href="https://github.com/kawsarkabir/react-design-showcase.git" rel="noopener noreferrer"&gt;React Design Showcase&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🚀 Why Explore These Projects?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Beginner-Friendly:&lt;/strong&gt; Perfect for those new to React.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear Documentation:&lt;/strong&gt; Each project comes with comprehensive documentation to guide you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Demos:&lt;/strong&gt; See the projects in action with live demos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source:&lt;/strong&gt; Feel free to contribute, ask questions, or provide feedback.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🛠 How to Get Started?
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Clone the Repository:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   git clone https://github.com/kawsarkabir/react-design-showcase.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Navigate to the Project Folder:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   cd react-design-showcase/project-name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install Dependencies:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   npm install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Run the Project:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  🤝 Get Involved!
&lt;/h3&gt;

&lt;p&gt;Found a bug? Have a suggestion? Want to contribute? Your feedback is highly appreciated! Feel free to open an issue, submit a pull request, or drop your thoughts in the comments.&lt;/p&gt;

&lt;p&gt;Let's learn and grow together! 🌱 Explore the projects &lt;a href="https://github.com/kawsarkabir/react-design-showcase.git" rel="noopener noreferrer"&gt;here&lt;/a&gt; and don't forget to star the repository if you find it useful.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀✨&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>reactjsdevelopment</category>
      <category>kawsarkabir</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
