ใช้ parseInt() (หรือ parseFloat()) ร่วมกับ forEach() และ update() เพื่อแปลงค่าสตริงเป็นตัวเลขในฟิลด์ที่ต้องการ
ตัวอย่างการใช้งาน
สร้างคอลเลกชัน convertStringToNumberDemo (EmployeeId เป็นสตริง):
> db.convertStringToNumberDemo.insertOne({"EmployeeId":"101","EmployeeName":"Larry"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7f56528d10a061296a3c31") }
> db.convertStringToNumberDemo.insertOne({"EmployeeId":"1120","EmployeeName":"Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7f56648d10a061296a3c32") }
> db.convertStringToNumberDemo.insertOne({"EmployeeId":"3210","EmployeeName":"Sam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c7f566e8d10a061296a3c33") }
แสดงข้อมูลก่อนแปลง:
> db.convertStringToNumberDemo.find().pretty();
{"_id" : ObjectId("5c7f56528d10a061296a3c31"), "EmployeeId" : "101", "EmployeeName" : "Larry" }
{"_id" : ObjectId("5c7f56648d10a061296a3c32"), "EmployeeId" : "1120", "EmployeeName" : "Mike" }
{"_id" : ObjectId("5c7f566e8d10a061296a3c33"), "EmployeeId" : "3210", "EmployeeName" : "Sam" }
คำสั่งแปลง EmployeeId จากสตริงเป็นตัวเลข:
> db.convertStringToNumberDemo.find().forEach(function(x)
... {
... db.convertStringToNumberDemo.update
... (
... { "_id": x._id },
... { "$set": { "EmployeeId": parseInt(x.EmployeeId) } }
... )
... }
... );
ตรวจสอบผลลัพธ์ (EmployeeId กลายเป็นตัวเลข):
> db.convertStringToNumberDemo.find().pretty();
{"_id" : ObjectId("5c7f56528d10a061296a3c31"), "EmployeeId" : 101, "EmployeeName" : "Larry" }
{"_id" : ObjectId("5c7f56648d10a061296a3c32"), "EmployeeId" : 1120, "EmployeeName" : "Mike" }
{"_id" : ObjectId("5c7f566e8d10a061296a3c33"), "EmployeeId" : 3210, "EmployeeName" : "Sam" }