sql >> Databasteknik >  >> NoSQL >> MongoDB

kan du inte uppdatera egenskapen createAt i mongoose?

Eftersom vissa av dokumenten skapades när timestamps alternativet var inställt på false (detta är standardvärdet) mongoose kommer inte att känna till dessa tidsstämplar. Därför item._id.getTimestamp() kommer att returnera odefinierat.

Vad du kan göra är att återskapa posterna där createdAt existerar inte. Mongoose kommer då automatiskt att generera tidsstämplarna och ställa in dem till den aktuella tidsstämpeln, om alternativet är aktiverat:

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



  1. Är memcached en dinosaurie i jämförelse med Redis?

  2. Enkel MongoDB-fråga mycket långsam även om index är inställt

  3. MongoDB $strcasecmp

  4. hur man importerar excel-fil (XLSX) till mongoDB