কম্পিউটার টিউটোরিয়াল

MongoDB-এ একাধিক প্রপার্টি তুলনা করার পদ্ধতি

MongoDB-এ একই ডকুমেন্টের একাধিক ফিল্ড বা অ্যারে এলিমেন্ট পারস্পরিকভাবে তুলনা করতে $where অপারেটর ব্যবহার করুন।

উদাহরণ

একটি ডকুমেন্ট তৈরি করুন:

> db.comparingMultiplePropertiesDemo.insertOne({"Values":[10,70,60]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cf228fcb64a577be5a2bc0a") }

ডকুমেন্টটি দেখুন:

> db.comparingMultiplePropertiesDemo.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5cf228fcb64a577be5a2bc0a"), "Values" : [ 10, 70, 60 ] }

কেস ১: শর্ত সত্য হলে (Values[1] > Values[2])

> db.comparingMultiplePropertiesDemo.find({ $where: "this.Values[1] > this.Values[2]" });

আউটপুট:

{ "_id" : ObjectId("5cf228fcb64a577be5a2bc0a"), "Values" : [ 10, 70, 60 ] }

কারণ ৭০ > ৬০ সত্য।

কেস ২: শর্ত মিথ্যা হলে (Values[1] < Values[2])

> db.comparingMultiplePropertiesDemo.find({ $where: "this.Values[1] < this.Values[2]" });

আউটপুট: কোনো ডকুমেন্ট ফেরত আসে না, কারণ ৭০ < ৬০ মিথ্যা।

ব্যাখ্যা:

  • $where জাভাস্ক্রিপ্ট এক্সপ্রেশন 評価 করে।
  • this বর্তমান ডকুমেন্টকে রেফার করে।
  • অ্যারে ইনডেক্স ০-ভিত্তিক: Values[0]=১০, Values[1]=৭০, Values[2]=৬০।

সতর্কতা: $where ধীর গতির, বড় ডেটাসেটে এগ্রিগেশন পাইপলাইন ($expr, $gt ইত্যাদি) ব্যবহার করুন।

আধুনিক বিকল্প (MongoDB ৩.৬+): $expr

db.comparingMultiplePropertiesDemo.find({
    $expr: { $gt: [ { $arrayElemAt: ["$Values", 1] }, { $arrayElemAt: ["$Values", 2] } ] }
});
  1. MongoDB-এ একাধিক ডকুমেন্ট মার্জ করার পদ্ধতি

  2. MongoDB-এ একই ফিল্ডে একাধিক OR শর্ত ব্যবহার করা

  3. MongoDB-এ একাধিক আটোমিক আপডেট (update() with $set, multi: true)

  4. MongoDB এগ্রিগেশন: একাধিক ফিল্ড গ্রুপ বাই করে ফলাফল বের করা ($facet)