MongoDB-এ স্ট্রিং ফিল্ডকে ইন্টিজারে কনভার্ট করা
MongoDB-এ স্ট্রিং হিসেবে সংরক্ষিত সংখ্যাগত ডেটা ক্যালকুলেশন বা সর্টিং-এর জন্য ইন্টিজারে কনভার্ট করতে parseInt() ফাংশন ব্যবহার করা হয়। এটি সাধারণত forEach() লুপের মাধ্যমে প্রতিটি ডকুমেন্ট আপডেট করে করা হয়।
উদাহরণ: স্ট্রিং প্রাইস সহ ডকুমেন্ট তৈরি
> 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();
{ "_id" : ObjectId("5e57e2e32ae06a1609a00aed"), "Price" : "1000000" }
{ "_id" : ObjectId("5e57e2e92ae06a1609a00aee"), "Price" : "1747864" }
{ "_id" : ObjectId("5e57e2ee2ae06a1609a00aef"), "Price" : "19548575" }
forEach লুপ ব্যবহার করে কনভার্ট এবং সেভ
> db.demo369.find().forEach( function (d) {
d.Price = parseInt(d.Price);
db.demo369.save(d);
});
কনভার্টের পর
> db.demo369.find();
{ "_id" : ObjectId("5e57e2e32ae06a1609a00aed"), "Price" : 1000000 }
{ "_id" : ObjectId("5e57e2e92ae06a1609a00aee"), "Price" : 1747864 }
{ "_id" : ObjectId("5e57e2ee2ae06a1609a00aef"), "Price" : 19548575 }
আধুনিক ও দ্রুত পদ্ধতি (MongoDB 4.2+)
updateMany() সাথে অগ্রেশন পাইপলাইন ব্যবহার করে এক কুয়েরিতে:
db.demo369.updateMany(
{},
[{ $set: { Price: { $toInt: "$Price" } } }]
)
অন্যান্য কনভারশন অপারেটর (MongoDB 4.0+)
$toInt/$toLong: স্ট্রিং → ইন্ট/লং$toDouble: স্ট্রিং → ডাবল$toString: নাম্বার → স্ট্রিং$toDate: স্ট্রিং/টাইমস্ট্যাম্প → ডেট
সতর্কতা: অবৈধ স্ট্রিং (যেমন "abc") কনভার্ট করলে এরর হবে। $convert ব্যবহার করে এরর হ্যান্ডলিং করা যায়।