$where অপারেটর ব্যবহার করে একই ডকুমেন্টের দুটি ফিল্ড তুলনা
MongoDB-এ একই ডকুমেন্টের মধ্যে দুটি ফিল্ডের মান তুলনা করার জন্য $where অপারেটর ব্যবহার করা হয়। এটি জাভাস্ক্রিপ্ট ফাংশন এক্সিকিউট করে।
সিনট্যাক্স
db.yourCollectionName.find({
$where: function() {
return this.yourFirstFieldName < this.yourSecondFieldName
}
}).pretty();
উদাহরণ: গণিত ও পদার্থবিজ্ঞানের নম্বর তুলনা
> db.comparingTwoFieldsDemo.insertOne({"StudentName":"John","StudentAge":21,"StudentMathMarks":99,"StudentPhysicsMarks":98});
> db.comparingTwoFieldsDemo.insertOne({"StudentName":"Carol","StudentAge":22,"StudentMathMarks":79,"StudentPhysicsMarks":89});
> db.comparingTwoFieldsDemo.insertOne({"StudentName":"David","StudentAge":24,"StudentMathMarks":39,"StudentPhysicsMarks":45});
> db.comparingTwoFieldsDemo.insertOne({"StudentName":"Bob","StudentAge":23,"StudentMathMarks":87,"StudentPhysicsMarks":78});
পদার্থবিজ্ঞানের নম্বর গণিতের চেয়ে বেশি এমন ডকুমেন্ট খুঁজে বের করা
> db.comparingTwoFieldsDemo.find({
$where: function() {
return this.StudentMathMarks < this.StudentPhysicsMarks
}
}).pretty();
ফলাফল:
{
"_id" : ObjectId("5c8ac0b46cea1f28b7aa0808"),
"StudentName" : "Carol", "StudentAge" : 22,
"StudentMathMarks" : 79, "StudentPhysicsMarks" : 89
}
{
"_id" : ObjectId("5c8ac0c96cea1f28b7aa0809"),
"StudentName" : "David", "StudentAge" : 24,
"StudentMathMarks" : 39, "StudentPhysicsMarks" : 45
}
সতর্কতা: $where জাভাস্ক্রিপ্ট エンジン ব্যবহার করে, তাই বড় ডেটাসেটে এটি ধীর হতে পারে। সম্ভব হলে এক্সপ্রেশন অপারেটর ($expr, $cmp ইত্যাদি) ব্যবহার করা উচিত।