MongoDB ObjectId Bộ chuyển đổi Dấu thời gian ↔ ObjectId

Bạn có biết rằng mỗi MongoDB ObjectId chứa một dấu thời gian nhúng của thời điểm tạo ra nó không?
Từ mongo shell, bạn có thể sử dụng getTimestamp() để lấy dấu thời gian từ ObjectId, nhưng không có hàm tích hợp để tạo ObjectId từ dấu thời gian.
Bộ chuyển đổi trực tuyến này sẽ chuyển đổi dấu thời gian thành ObjectId và ngược lại.

ObjectId

(LƯU Ý: không duy nhất, chỉ sử dụng để so sánh, không dùng để tạo tài liệu mới!)

ObjectId để dán vào mongo shell

Time (UTC)

Năm (4 chữ số)
Tháng (1 - 12)
Ngày (1 - 31)
Giờ (0 - 23)
Phút (0 - 59)
Giây (0 - 59)
Dấu thời gian ISO

Tại sao tạo ObjectId từ dấu thời gian?

Để tìm tất cả các bình luận được tạo sau 2013-11-01:

db.comments.find({_id: {$gt: ObjectId("5272e0f00000000000000000")}})

Javascript functions

var objectIdFromDate = function (date) {
    return Math.floor(date.getTime() / 1000).toString(16) + "0000000000000000";
};
            
var dateFromObjectId = function (objectId) {
    return new Date(parseInt(objectId.substring(0, 8), 16) * 1000);
};