Sử dụng $dateFromParts xây dựng Date từ các trường riêng lẻ (year, month, day), sau đó $dateToString định dạng chuỗi.
Tạo collection:
> db.demo386.insert({
details: { Month: 02, Day: 27, Year: 2020 }
});
WriteResult({ "nInserted" : 1 })
Xem dữ liệu:
> db.demo386.find();
Aggregation chuyển đổi:
> db.demo386.aggregate({ "$project":{ "_id":0, "DueDate":{ "$dateToString":{ "format":"%m-%d-%Y", "date":{ "$dateFromParts": { "year":"$details.Year", "month":"$details.Month", "day":"$details.Day" } } } } } });Kết quả:
Giải thích:
$dateFromParts: tạo BSON Date từ các thành phần số (year, month, day, hour, minute, second, ms)$dateToString: định dạng Date thành chuỗi với format specifier (%Y, %m, %d, %H, %M, %S...)- Có thể thêm
timezonetrong $dateToString
Ứng dụng: Xử lý dữ liệu legacy lưu ngày tách thành các cột số, hoặc nhập liệu từ form tách trường.