MongoDB में स्ट्रिंग-स्टोर संख्याओं को पूर्णांक में बदलने के लिए, शेल में forEach() के साथ parseInt() (या NumberInt()) का उपयोग करें, या एग्रीगेशन में $toInt (MongoDB 4.0+) का उपयोग करें।
उदाहरण: स्ट्रिंग के रूप में संग्रहीत मूल्य
> db.demo369.insertOne({"Price":"1000000"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e2e32ae06a1609a00aed") }
> db.demo369.insertOne({"Price":"1747864"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e2e92ae06a1609a00aee") }
> db.demo369.insertOne({"Price":"19548575"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e57e2ee2ae06a1609a00aef") }
दस्तावेज़ देखना
> db.demo369.find();
आउटपुट: स्ट्रिंग मूल्य।
विधि 1: शेल forEach + parseInt (इन-प्लेस अपडेट)
> db.demo369.find().forEach(function(d) {
d.Price = parseInt(d.Price);
db.demo369.save(d);
});
फिर find() पूर्णांक दिखाता है।
विधि 2: एग्रीगेशन $toInt (MongoDB 4.0+, गैर-विनाशकारी)
> db.demo369.aggregate([
{ $project: { _id: 0, PriceInt: { $toInt: "$Price" } } }
]);
आउटपुट: { "PriceInt" : 1000000 } आदि।
विधि 3: बल्क अपडेट के साथ $toInt (MongoDB 4.2+)
> db.demo369.updateMany(
{},
[ { $set: { Price: { $toInt: "$Price" } } } ]
);
संग्रह में स्थायी रूप से परिवर्तित करता है।
नोट
parseIntस्ट्रिंग को पूर्णांक के रूप में पार्स करता है; अमान्य स्ट्रिंग्स के लिएNaNलौटाता है।$toIntत्रुटि पर विफल होता है; सुरक्षित रूपांतरण के लिए$convertके साथonError/onNullका उपयोग करें।- बड़े पूर्णांकों (64-बिट) के लिए,
$toLongयाNumberLong()का उपयोग करें।