Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ลบช่องว่างหน้า-หลัง String ใน MongoDB ด้วย trim() และ forEach()

บทความนี้สาธิตวิธีลบช่องว่าง (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" }

คำอธิบายขั้นตอน

  1. find({}, { "Title": 1 }) - ดึงเฉพาะฟิลด์ Title (และ _id อัตโนมัติ)
  2. forEach() - วนลูปแต่ละ Document
  3. myDocument.Title.trim() - ใช้ JavaScript trim() ตัดช่องว่างหน้า-หลัง
  4. 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() - เปลี่ยน Case
  • replace() - แทนที่ข้อความ