Protože některé dokumenty byly vytvořeny, když timestamps
volba byla nastavena na false (toto je výchozí hodnota), mongoose nebude znát tato časová razítka. Proto item._id.getTimestamp()
vrátí se nedefinováno.
Co můžete udělat, je znovu vytvořit položky, kde createdAt
neexistuje. Mongoose pak automaticky vygeneruje časová razítka a nastaví je na aktuální časové razítko, pokud je tato možnost povolena:
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());
}