আপনি এর জন্য $where অপারেটর ব্যবহার করতে পারেন। ধারণাটি বুঝতে, আসুন ডকুমেন্টের সাথে একটি সংগ্রহ তৈরি করি। একটি নথির সাথে একটি সংগ্রহ তৈরি করার প্রশ্নটি নিম্নরূপ -
> db.queryInSameDocumentsDemo.insertOne({"StudentDetails":{"StudentName":"John"},"NewStudentDetails":{"StudentName":"Carol"}});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c90096ed3c9d04998abf017")
}
> db.queryInSameDocumentsDemo.insertOne({"StudentDetails":{"StudentName":"Bob"},"NewStudentDetails":{"StudentName":"Bob"}});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c900a435705caea966c5573")
} Find() পদ্ধতির সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -
> db.queryInSameDocumentsDemo.find().pretty();
নিচের আউটপুট −
{
"_id" : ObjectId("5c90096ed3c9d04998abf017"),
"StudentDetails" : {
"StudentName" : "John"
},
"NewStudentDetails" : {
"StudentName" : "Carol"
}
}
{
"_id" : ObjectId("5c900a435705caea966c5573"),
"StudentDetails" : {
"StudentName" : "Bob"
},
"NewStudentDetails" : {
"StudentName" : "Bob"
}
} কেস 1 − এখানে একই নথিতে ক্ষেত্র সহ ক্যোয়ারী আছে। আমরা এখানে সমতা (==) অপারেটর ব্যবহার করেছি। প্রশ্নটি নিম্নরূপ -
> db.queryInSameDocumentsDemo.find( { $where: "this.StudentDetails.StudentName == this.NewStudentDetails.StudentName" } ).pretty(); নিচের আউটপুট −
{
"_id" : ObjectId("5c900a435705caea966c5573"),
"StudentDetails" : {
"StudentName" : "Bob"
},
"NewStudentDetails" : {
"StudentName" : "Bob"
}
} কেস 2 − এখানে একই নথিতে ক্ষেত্র সহ ক্যোয়ারী আছে। আমরা অপারেটরের সমান ব্যবহার করেছি।
প্রশ্নটি নিম্নরূপ -
> db.queryInSameDocumentsDemo.find( { $where: "this.StudentDetails.StudentName != this.NewStudentDetails.StudentName" } ).pretty(); নিচের আউটপুট −
{
"_id" : ObjectId("5c90096ed3c9d04998abf017"),
"StudentDetails" : {
"StudentName" : "John"
},
"NewStudentDetails" : {
"StudentName" : "Carol"
}
}