आप इसके लिए $ जहाँ ऑपरेटर का उपयोग कर सकते हैं। अवधारणा को समझने के लिए, आइए हम दस्तावेज़ के साथ एक संग्रह बनाएं। दस्तावेज़ के साथ संग्रह बनाने की क्वेरी इस प्रकार है -
> 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")
} संग्रह से सभी दस्तावेज़ों को ढूँढें () विधि की सहायता से प्रदर्शित करें। क्वेरी इस प्रकार है -
> 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"
}
}