ให้เราแปลงประเภทสตริงเป็น 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” ได้เปลี่ยนจากประเภทสตริงเป็นตัวเลข