ให้เราแปลงประเภทสตริงเป็น int เป็นตัวอย่าง การรวมไม่อนุญาตให้เราเปลี่ยนประเภทของฟิลด์โดยตรง ดังนั้น คุณต้องเขียนโค้ดเพื่อแปลงประเภทของฟิลด์
ขั้นแรก ให้สร้างคอลเลกชันที่มีเอกสาร หลังจากนั้นเราจะได้แบบของทุกสนาม แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้
>db.changeDataType.insertOne({"StudentName":"Larry","StudentAge":23,"StudentZipCode":" 10001","isProgrammer":false}); { "acknowledged" : true, "insertedId" : ObjectId("5c6ed4976fd07954a4890694") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้:
> db.changeDataType.find().pretty();
ต่อไปนี้เป็นผลลัพธ์:
{ "_id" : ObjectId("5c6ed4976fd07954a4890694"), "StudentName" : "Larry", "StudentAge" : 23, "StudentZipCode" : "10001", "isProgrammer" : false }
ตอนนี้ให้เราตรวจสอบประเภทของทุกฟิลด์ในคอลเลกชัน แบบสอบถามมีดังต่อไปนี้เพื่อตรวจสอบประเภทของทุกฟิลด์:
> 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” ได้เปลี่ยนจากประเภทสตริงเป็นตัวเลข