MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

incapaz de atualizar a propriedade createdAt no mangusto?


Como alguns dos documentos foram criados quando os timestamps a opção foi definida como false (este é o valor padrão) o mangusto não conhecerá esses carimbos de data e hora. Portanto, item._id.getTimestamp() retornará indefinido.

O que você pode fazer é recriar as entradas onde createdAt não existe. O Mongoose irá gerar automaticamente os timestamps e defini-los para o timestamp atual, se a opção estiver habilitada:
    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());
    }