ใช้ $dateToString ใน Aggregation Pipeline
Operator $dateToString แปลง Date/ISODate เป็น String ตามรูปแบบที่กำหนด ใช้ใน $project ของ aggregation
ตัวอย่างข้อมูล
> db.demo480.insertOne({ id: 1, "DueDate": new ISODate("2020-01-10") });
> db.demo480.insertOne({ id: 1, "DueDate": new ISODate("2017-12-21") });
> db.demo480.insertOne({ id: 1, "DueDate": new ISODate("2019-10-12") });
> db.demo480.insertOne({ id: 1, "DueDate": new ISODate("2019-12-01") });
Query จัดรูปแบบวันที่ และเรียงลำดับ
> db.demo480.aggregate([
{ $match: { id: 1 } },
{ $sort: { DueDate: -1 } },
{ $project: {
_id: 0,
DueDate: { $dateToString: { format: "%Y-%m-%d %H-%M", date: "$DueDate" } }
}}
]);
ผลลัพธ์
{ "DueDate": "2020-01-10 00-00" }
{ "DueDate": "2019-12-01 00-00" }
{ "DueDate": "2019-10-12 00-00" }
{ "DueDate": "2017-12-21 00-00" }
Format Specifiers ที่ใช้ได้
| Specifier | คำอธิบาย | ตัวอย่าง |
|---|---|---|
%Y | ปี 4 หลัก | 2024 |
%m | เดือน 01-12 | 03 |
%d | วัน 01-31 | 15 |
%H | ชั่วโมง 00-23 | 14 |
%M | นาที 00-59 | 30 |
%S | วินาที 00-59 | 45 |
%L | มิลลิวินาที 000-999 | 123 |
%j | วันของปี 001-366 | 074 |
%w | วันของสัปดาห์ 0-6 (0=อาทิตย์) | 3 |
%% | ตัว % ตรงตัว | % |