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

ude af stand til at opdatere ejendommen createAt i mongoose?

Da nogle af dokumenterne blev oprettet, da timestamps indstillingen blev sat til falsk (dette er standardværdien) mongoose vil ikke kende disse tidsstempler. Derfor item._id.getTimestamp() vil returnere udefineret.

Hvad du kan gøre, er at genskabe de poster, hvor createdAt eksisterer ikke. Mongoose vil derefter automatisk generere tidsstemplerne og indstille dem til det aktuelle tidsstempel, hvis indstillingen er aktiveret:

    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. Forespørgsel for at få data fra de sidste X minutter med Mongodb

  2. Opret forbindelse til AWS ElastiCache med In-Transit Encryption + Auth fra anden klient end redis-cli+stunnel

  3. Hvordan får man flere dokumenter ved hjælp af array af MongoDb id?

  4. MongoDB - Opdater et dokument