MongoDB फील्ड को दूसरे फील्ड के मान से अपडेट करने के लिए आप एग्रीगेट फंक्शन का उपयोग कर सकते हैं। यहां, हम दो कलेक्शन बनाएंगे:
- name
- studentInformation
<name> कलेक्शन
डॉक्यूमेंट्स के साथ पहला कलेक्शन बनाने की क्वेरी इस प्रकार है:
> db.name.insert({"FirstName":"John","LastName":"Smith"});
WriteResult({ "nInserted" : 1 })
अब आप find() मेथड की मदद से कलेक्शन से सभी डॉक्यूमेंट्स प्रदर्शित कर सकते हैं। क्वेरी इस प्रकार है:
> db.name.find().pretty();
निम्नलिखित आउटपुट "name" कलेक्शन के डॉक्यूमेंट्स प्रदर्शित करता है:
{ "_id" : ObjectId("5c6c00dd68174aae23f5ef55"), "FirstName" : "John", "LastName" : "Smith" }
<studentInformation> कलेक्शन
डॉक्यूमेंट्स के साथ दूसरा कलेक्शन बनाने की क्वेरी इस प्रकार है:
> db.studentInformation.insert({"StudentFirstName":"Carol","StudentLastName":"Taylor"});
WriteResult({ "nInserted" : 1 })
अब आप find() मेथड की मदद से कलेक्शन से सभी डॉक्यूमेंट्स प्रदर्शित कर सकते हैं। क्वेरी इस प्रकार है:
> db.studentInformation.find().pretty();
निम्नलिखित आउटपुट है:
{ "_id" : ObjectId("5c6c013068174aae23f5ef56"), "StudentFirstName" : "Carol", "StudentLastName" : "Taylor" }
अब, आइए कलेक्शन "name" को दूसरे कलेक्शन "studentInformation" से अपडेट करें। क्वेरी इस प्रकार है:
> db.studentInformation.aggregate( [
{"$addFields":{"FullName":{"$concat":["$StudentFirstName"," ","$StudentLastName"]}}},
{"$out":"name"}
] );
अब आप कलेक्शन "name" के डॉक्यूमेंट्स चेक कर सकते हैं। क्वेरी इस प्रकार है:
> db.name.find().pretty();
निम्नलिखित आउटपुट प्रदर्शित करता है कि हमने सफलतापूर्वक फील्ड्स अपडेट कर दिए हैं:
{ "_id" : ObjectId("5c6c013068174aae23f5ef56"), "StudentFirstName" : "Carol", "StudentLastName" : "Taylor", "FullName" : "Carol Taylor" }