आइए एक उदाहरण के लिए स्ट्रिंग टाइप को int में बदलें। एग्रीगेशन हमें सीधे फील्ड का टाइप बदलने की अनुमति नहीं देता; इसलिए, आपको फील्ड का टाइप बदलने के लिए कोड लिखना होगा।
पहले, डॉक्यूमेंट के साथ एक कलेक्शन बनाएं। उसके बाद हम हर फील्ड का टाइप प्राप्त करेंगे। डॉक्यूमेंट के साथ कलेक्शन बनाने की क्वेरी इस प्रकार है:
>db.changeDataType.insertOne({"StudentName":"Larry","StudentAge":23,"StudentZipCode":"10001","isProgrammer":false});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ed4976fd07954a4890694") }
find() मेथड की मदद से कलेक्शन से सभी डॉक्यूमेंट्स प्रदर्शित करें। क्वेरी इस प्रकार है:
> db.changeDataType.find().pretty();
निम्नलिखित आउटपुट है:
अब कलेक्शन में हर फील्ड का टाइप चेक करें। कलेक्शन में हर फील्ड का टाइप चेक करने की क्वेरी इस प्रकार है:
> checkType=db.changeDataType.findOne(); { "_id" : ObjectId("5c6ed4976fd07954a4890694"), "StudentName" : "Larry", "StudentAge" : 23, "StudentZipCode" : "10001", "isProgrammer" : false }अब यहां हम ऊपर वाले वेरिएबल "checkType" का उपयोग करके हर वेरिएबल का टाइप प्राप्त करेंगे। क्वेरी इस प्रकार है:
> typeof checkType._id; object > typeof checkType.StudentName; string > typeof checkType.StudentAge; number > typeof checkType.StudentZipCode; string > typeof checkType.isProgrammer; booleanअब, "StudentZipCode" का टाइप स्ट्रिंग से नंबर टाइप में बदलें। क्वेरी इस प्रकार है:
> db.changeDataType.find().forEach(function(ch) { db.changeDataType.update({ "_id":ch._id}, {"$set": { "StudentZipCode":parseInt(ch.StudentZipCode) }} }); });मैंने "StudentZipCode" का टाइप स्ट्रिंग से नंबर टाइप में बदल दिया है। सत्यापित करने के लिए, आइए कलेक्शन में फील्ड के टाइप को चेक करने के लिए ऊपर जो देखा उसका पालन करें:
> againCheckType=db.changeDataType.findOne(); { "_id" : ObjectId("5c6ed4976fd07954a4890694"), "StudentName" : "Larry", "StudentAge" : 23, "StudentZipCode" : 10001, "isProgrammer" : false }फील्ड के टाइप को चेक करने के लिए ऊपर वाले वेरिएबल का उपयोग करें:
> typeof againCheckType.StudentZipCode; numberउपरोक्त आउटपुट को अब देखें, "StudentZipCode" फील्ड String टाइप से नंबर में बदल दिया गया है।