ใช้ $toString ใน $project
โอเปอเรเตอร์ $toString (เพิ่มใน MongoDB 4.0+) แปลงค่าประเภทต่างๆ ให้เป็น String ภายใน aggregation pipeline
ตัวอย่าง: แปลง ObjectId เป็น String
สร้างคอลเลกชัน objectidToStringDemo:
> db.objectidToStringDemo.insertOne({"UserName":"John"});
> db.objectidToStringDemo.insertOne({"UserName":"Chris"});
> db.objectidToStringDemo.insertOne({"UserName":"Larry"});
> db.objectidToStringDemo.insertOne({"UserName":"Robert"});
Aggregation แปลง _id เป็น String
> db.objectidToStringDemo.aggregate([
{$project: {
_id: {$toString: "$_id"}
}}
]);
ผลลัพธ์:
{ "_id" : "5c92b80036de59bd9de0639d" }
{ "_id" : "5c92b80436de59bd9de0639e" }
{ "_id" : "5c92b80936de59bd9de0639f" }
{ "_id" : "5c92b81836de59bd9de063a0" }
แปลงกลับเป็น ObjectId ด้วย $toObjectId
> db.objectidToStringDemo.aggregate([
{$project: {_id: {$toObjectId: "$_id"}}}
]);
ผลลัพธ์: คืนค่าเป็น ObjectId แบบเดิม
$toString รองรับการแปลงจาก Boolean, Date, Number, ObjectId, Array เป็นต้น