MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

incapable de mettre à jour la propriété createdAt dans mangouste ?

Étant donné que certains des documents ont été créés lorsque les timestamps l'option a été définie sur false (c'est la valeur par défaut), mangouste ne connaîtra pas ces horodatages. Par conséquent, item._id.getTimestamp() renverra undefined.

Ce que vous pouvez faire, c'est recréer les entrées où createdAt n'existe pas. Mongoose générera alors automatiquement les horodatages et les définira sur l'horodatage actuel, si l'option est activée :

    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());
    }