บทความนี้สาธิตวิธีลบช่องว่าง (Whitespace) นำหน้าและท้ายสตริงใน MongoDB โดยใช้ JavaScript trim() ร่วมกับ forEach() เพื่ออัปเดตข้อมูลทีละ Document
สร้างข้อมูลตัวอย่าง (มีช่องว่างหน้า-หลัง)
> db.removingWhiteSpaceDemo.insertOne({"Title":" Introduction to java "});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd66f387924bb85b3f4894c") }
แสดงข้อมูลก่อนลบช่องว่าง
> db.removingWhiteSpaceDemo.find();
{ "_id" : ObjectId("5cd66f387924bb85b3f4894c"), "Title" : " Introduction to java " }
ลบช่องว่างหน้า-หลังด้วย forEach() และ trim()
> db.removingWhiteSpaceDemo.find({}, { "Title": 1 }).forEach(function(myDocument) {
myDocument.Title = myDocument.Title.trim();
db.removingWhiteSpaceDemo.update(
{ "_id": myDocument._id },
{ "$set": { "Title": myDocument.Title } }
);
});
ตรวจสอบผลลัพธ์ (ช่องว่างหายไป)
> db.removingWhiteSpaceDemo.find();
{ "_id" : ObjectId("5cd66f387924bb85b3f4894c"), "Title" : "Introduction to java" }
คำอธิบายขั้นตอน
find({}, { "Title": 1 })- ดึงเฉพาะฟิลด์ Title (และ _id อัตโนมัติ)forEach()- วนลูปแต่ละ DocumentmyDocument.Title.trim()- ใช้ JavaScript trim() ตัดช่องว่างหน้า-หลังupdate()- บันทึกค่ากลับด้วย $set
วิธีทันสมัยกว่า (MongoDB 4.2+): ใช้ $trim ใน Aggregation Pipeline
db.removingWhiteSpaceDemo.updateMany(
{},
[ { $set: { Title: { $trim: { input: "$Title" } } } } ]
);
ฟังก์ชัน String เพิ่มเติมที่ใช้ได้ใน Mongo Shell
trim()- ตัดช่องว่างหน้า-หลังtrimStart()/trimLeft()- ตัดช่องว่างหน้าtrimEnd()/trimRight()- ตัดช่องว่างหลังtoLowerCase(),toUpperCase()- เปลี่ยน Casereplace()- แทนที่ข้อความ