এই অধ্যায়টি মুলত MongoDB-র মাধ্যমে mongo shell দিয়ে বেসিক ক্যুয়ারি সিনট্যাক্সকে পরিচিত করানো হয়েছে। mongo shell-এ, ডেটা কুয়েরি করার জন্য db.collection.find() মেথডটি ব্যবহার করা হয়।

পরীক্ষার ডেটা প্রস্তুত করুন

ইনভেন্টরী কালেকশনে কিছু ডেটা ঢুকিয়ে দিন।

db.inventory.insertMany([
   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);

সব ডকুমেন্ট কুয়েরি করুন

ইনভেন্টরী কালেকশনে সমস্ত ডকুমেন্ট কুয়েরি করুন, {} ফাঁকা কুয়েরি শর্ত নির্দিষ্ট করে।

db.inventory.find( {} )

তুলনামূলকভাবে নিম্নলিখিত SQL বাক্যের সাথে:

SELECT * FROM inventory

সমানতা কুয়েরি শর্ত

সিনট্যাক্স:

{ field: value, ... }

উদাহরণ 1:

db.inventory.find( { status: "D" } )

তুলনামূলকভাবে নিম্নলিখিত SQL বাক্যের সাথে:

SELECT * FROM inventory WHERE status = "D"

উদাহরণ 2: নেস্টেড ফিল্ড কুয়েরি, নেস্টেড ডকুমেন্টের ফিল্ডগুলি সংযোগ করতে ডট (.) ব্যবহার করুন।

db.inventory.find( { "size.uom": "in" } )

তুলনামূলকভাবে নিম্নলিখিত SQL বাক্যের সাথে:

SELECT * FROM inventory WHERE size.uom = "in"

লক্ষ্য: MongoDB ডকুমেন্টগুলি JSON ফরম্যাটে সংরক্ষিত থাকে, তাই তারা উপনেস্ট ক্ষেত্রে প্রয়োজনীয় হোল্ডিং ফিল্ডগুলি ব্যবহার করতে সাপোর্ট করে।

ক্যুয়েরি অপারেটর ব্যবহার করা

MongoDB বিভিন্ন জটিল কুয়েরি জন্য বিভিন্ন কুয়েরি অপারেটর সমর্থন করে। সিনট্যাক্স:

{ <field1>: { <operator1>: <value1> }, ... }

ব্যাখ্যা:

  • field1: ফিল্ড নাম
  • operator1: অপারেটর
  • value1: অপারেটর প্যারামিটার

$in অপারেটরের উদাহরণ:

db.inventory.find( { status: { $in: [ "A", "D" ] } } )

তুলনামূলকভাবে নিম্নলিখিত SQL কুয়েরি অপারেটর "in" সহ:

SELECT * FROM inventory WHERE status in ("A", "D")

লক্ষ্য: অপারেটরের বিশদ বিবরণের জন্য, দয়া করে পরবর্তী MongoDB কুয়েরি বিস্তারিত অংশে চলুন।

এবং শর্ত

SQL এর মতো, MongoDB ও এবং শর্তকে সমর্থন করে।

উদাহরণ:

// অনুসরণ করে একাধিক শর্ত লিখুন, এবং এবং ব্যবহার করে শর্তগুলি সংযুক্ত করুন
db.inventory.find( { status: "A", item: "postcard"} )

SQL বাক্যের সাথে তুলনা করে:

SELECT * FROM inventory WHERE status = "A" AND item = "postcard"

অথবা শর্ত

SQL এর মতো, MongoDB ও অথবা শর্তকে সমর্থন করে, যা $or অপারেটর দ্বারা বাস্তবায়িত করা হয়।

সিনট্যাক্স:

{
	$or: [
		{condition1},
		{condition2},
		.....
	]
}

উদাহরণ:

db.inventory.find( { $or: [ { status: "A" }, { item: "postcard"} ] } )

SQL বাক্যের সাথে তুলনা করে:

SELECT * FROM inventory WHERE status = "A" OR item = "postcard"

এবং ও অথবা শর্ত সংযোগ করা

SQL এর মতো, MongoDB বৃহত্তর জটিল কুয়েরি শর্তগুলি এবং অথবা ব্যবহার করে সংযুক্ত করতে পারে।

উদাহরণ:

db.inventory.find( {
     status: "A",
     $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
} )

এখানে $lt অপারেটরটি মিনটের জন্য ব্যবহৃত এবং বৈশিষ্ট্যক্ত অনুসন্ধান এর জন্য নিয়মিত অভিযোগী ব্যবহার করা হয়।

এটি নিম্নলিখিত SQL বাক্যের মত:

SELECT * FROM inventory WHERE status = "A" AND ( qty  < 30 or item like 'p%')

টিপ: MongoDB কুয়েরি শর্তের বিস্তারিত ব্যাখ্যা পেতে, দয়া করে পরবর্তী অধ্যায়গুলির সাথে সংযোগ করুন।