MongoDB में स्ट्रिंग फील्ड को न्यूमेरिकल (इंटीजर) में कन्वर्ट करने के लिए forEach लूप के साथ parseInt() का उपयोग करें।
उदाहरण से समझें
एक कलेक्शन बनाकर स्ट्रिंग के रूप में EmployeeId इन्सर्ट करते हैं:
> db.convertStringToNumberDemo.insertOne({"EmployeeId": "101", "EmployeeName": "Larry"});
> db.convertStringToNumberDemo.insertOne({"EmployeeId": "1120", "EmployeeName": "Mike"});
> db.convertStringToNumberDemo.insertOne({"EmployeeId": "3210", "EmployeeName": "Sam"});
सभी डॉक्यूमेंट देखने के लिए:
> db.convertStringToNumberDemo.find().pretty();
आउटपुट (कन्वर्जन से पहले):
अब स्ट्रिंग को इंटीजर में कन्वर्ट करने के लिए:
> db.convertStringToNumberDemo.find().forEach(function(x) { db.convertStringToNumberDemo.update( {"_id": x._id}, {$set: {"EmployeeId": parseInt(x.EmployeeId)}} ); });फिर से चेक करें:
> db.convertStringToNumberDemo.find().pretty();आउटपुट (कन्वर्जन के बाद):
नोट: MongoDB 4.0+ में एग्रीगेशन पाइपलाइन में
$toIntया$convertका उपयोग करके सर्वर-साइड कन्वर्जन अधिक कुशल है।