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

Chuyển đổi các thành phần ngày thành Date trong MongoDB

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 timezone trong $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.