Để chuyển đổi định dạng ngày tháng (ví dụ từ DD-MM-YYYY sang YYYY-MM-DD), có thể dùng biến JavaScript trong mongo shell để xử lý chuỗi.
Ngày gốc
"01-10-2019" // DD-MM-YYYY
Chuyển đổi dùng JavaScript string manipulation
> var inputDate = "01-10-2019"; > var formatDate = inputDate.split(/-|\//); > var outputString = formatDate[2] + '-' + formatDate[0] + '-' + formatDate[1];
Hiển thị kết quả
> print(outputString);
Kết quả:
2019-01-10
Giải thích:
split(/-|\//): Tách chuỗi theo dấu-hoặc/→ mảng["01", "10", "2019"]- Ghép lại theo thứ tự:
[2]-[0]-[1]→ Year-Month-Day
Cách chuyên nghiệp hơn trong MongoDB (Aggregate):
db.collection.aggregate([
{
$project: {
formattedDate: {
$dateToString: {
format: "%Y-%m-%d",
date: { $dateFromString: { dateString: "$dateField", format: "%d-%m-%Y" } }
}
}
}
}
])
$dateFromString: Parse chuỗi theo format chỉ định thành Date object$dateToString: Format Date object thành chuỗi theo format mong muốn- Xử lý được trực tiếp trên server, không cần client-side JS
- Hỗ trợ timezone, locale
Lưu ý: Cách JS shell chỉ phù hợp xử lý ad-hoc, không dùng cho production query.