Ponieważ niektóre dokumenty zostały utworzone, gdy timestamps
opcja została ustawiona na false (jest to wartość domyślna) mangusta nie będzie znała tych znaczników czasu. Stąd item._id.getTimestamp()
zwróci undefined.
To, co możesz zrobić, to odtworzyć wpisy, w których createdAt
nie istnieje. Mongoose automatycznie wygeneruje znaczniki czasu i ustawi je na bieżący znacznik czasu, jeśli opcja jest włączona:
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());
}