Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Thay đổi định dạng ngày tháng trong MongoDB

Để 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.