Vì một số tài liệu được tạo khi timestamps
tùy chọn được đặt thành false (đây là giá trị mặc định) mongoose sẽ không biết các dấu thời gian đó. Do đó, item._id.getTimestamp()
sẽ trả về không xác định.
Những gì bạn có thể làm là tạo lại các mục nhập mà createdAt
không tồn tại. Sau đó, Mongoose sẽ tự động tạo các dấu thời gian và đặt chúng thành dấu thời gian hiện tại, nếu tùy chọn được bật:
const profilesWithoutCreated = await Profile.find({createdAt: {$exists: false}}).exec();
const timeStampExtract = [];
let newProfile;
for (const profile of profiles) {
newProfile = new Profile(profile);
newProfile.createdAt = profile._id.getTimestamp();
const savedProfile = await newProfile.save();
timeStampExtract.push(savedProfile._id.getTimestamp());
}