MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Impossibile aggiornare la proprietà createAt in mangusta?

Poiché alcuni dei documenti sono stati creati quando i timestamps l'opzione è stata impostata su false (questo è il valore predefinito) mangusta non conoscerà quei timestamp. Quindi, item._id.getTimestamp() tornerà indefinito.

Quello che puoi fare è ricreare le voci in cui createdAt non esiste. Mongoose genererà quindi automaticamente i timestamp e li imposterà sul timestamp corrente, se l'opzione è abilitata:

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