一部のドキュメントはtimestamps
のときに作成されたため オプションがfalseに設定されました(これはデフォルト値です)mongooseはそれらのタイムスタンプを認識しません。したがって、item._id.getTimestamp()
未定義を返します。
できることは、createdAt
のエントリを再作成することです。 存在しません。オプションが有効になっている場合、Mongooseはタイムスタンプを自動的に生成し、現在のタイムスタンプに設定します。
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());
}