Giới thiệu
Để chèn đối tượng Date vào MongoDB qua mongo shell, bạn tạo biến Date trong JavaScript rồi gán vào trường khi insert.
Cú pháp
var tenBien = new Date(nam, thang, ngay, gio, phut);
db.tenCollection.insertOne({ tenTruongNgay: tenBien });
Lưu ý: Tháng trong JavaScript Date bắt đầu từ 0 (0=Tháng 1, 11=Tháng 12).
Ví dụ minh họa
1. Tạo biến Date (29/04/2019, 13:12)
> var taoNgay = new Date(2019, 03, 29, 13, 12);
2. Insert document với biến Date
> db.chenNgayBienDemo.insertOne({
"TenNguoiDung": "John",
"TinNhan": ["Hi", "Hello", "Awesome"],
"NgayDang": taoNgay
});
3. Kết quả - MongoDB lưu dưới dạng ISODate
{
"_id" : ObjectId("5c9d1b19a629b87623db1b21"),
"TenNguoiDung" : "John",
"TinNhan" : [ "Hi", "Hello", "Awesome" ],
"NgayDang" : ISODate("2019-04-29T07:42:00Z")
}
Các cách tạo Date khác
| Cách | Cú pháp | Ví dụ |
|---|---|---|
| ISODate string | new ISODate("2019-04-29T13:12:00Z") | UTC time |
| Date string | new Date("2019-04-29") | Local time midnight |
| Timestamp | new Date(1556543520000) | Milliseconds since epoch |
| Hiện tại | new Date() | Now |
Lưu ý quan trọng
- MongoDB lưu Date dưới dạng UTC (ISODate)
- Khi query, MongoDB tự chuyển đổi múi giờ nếu cần
- Nên dùng ISODate string để tránh nhầm lẫn múi giờ
- Trong driver (Node.js, Python...), truyền Date object gốc của ngôn ngữ đó