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

MongoDB-এ একই ডকুমেন্টের মধ্যে দুটি ফিল্ড তুলনা করে কোয়েরি ($where)


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

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

নমুনা ডেটা

> db.queryInSameDocumentsDemo.insertOne({
  "StudentDetails": { "StudentName": "John" },
  "NewStudentDetails": { "StudentName": "Carol" }
});
> db.queryInSameDocumentsDemo.insertOne({
  "StudentDetails": { "StudentName": "Bob" },
  "NewStudentDetails": { "StudentName": "Bob" }
});

Case 1: সমান (==) ফিল্ড খুঁজে বের করা

> db.queryInSameDocumentsDemo.find({
  $where: "this.StudentDetails.StudentName == this.NewStudentDetails.StudentName"
}).pretty();
{
  "_id" : ObjectId("5c900a435705caea966c5573"),
  "StudentDetails" : { "StudentName" : "Bob" },
  "NewStudentDetails" : { "StudentName" : "Bob" }
}

Case 2: অসমান (!=) ফিল্ড খুঁজে বের করা

> db.queryInSameDocumentsDemo.find({
  $where: "this.StudentDetails.StudentName != this.NewStudentDetails.StudentName"
}).pretty();
{
  "_id" : ObjectId("5c90096ed3c9d04998abf017"),
  "StudentDetails" : { "StudentName" : "John" },
  "NewStudentDetails" : { "StudentName" : "Carol" }
}

সতর্কতা: $where জাভাস্ক্রিপ্ট エンジン চালায়, যা ধীর। MongoDB 3.6+ এ $expr অপারেটর ব্যবহার করুন যা ইনডেক্স ব্যবহার করতে পারে এবং দ্রুত:

db.collection.find({
  $expr: { $eq: ["$StudentDetails.StudentName", "$NewStudentDetails.StudentName"] }
});

  1. MongoDB-এ শুধু ObjectId দিয়ে ডকুমেন্ট আপডেট করা

  2. MongoDB-এ একাধিক ফিল্ডের অস্তিত্ব চেক করা

  3. MongoDB-তে ডট নোটেশন ব্যবহার করে নেস্টেড ডকুমেন্ট আপডেট করা

  4. MongoDB-এ এমবেডেড ডকুমেন্টের অ্যারে ফিল্টার করা (৩ লেভেল)