sql >> Database >  >> NoSQL >> MongoDB

kan de eigenschap createdAt in mangoest niet bijwerken?

Aangezien sommige documenten zijn gemaakt toen de timestamps optie is ingesteld op false (dit is de standaardwaarde) mangoest kent die tijdstempels niet. Vandaar, item._id.getTimestamp() zal ongedefinieerd terugkeren.

Wat u kunt doen, is de vermeldingen opnieuw maken waar createdAt bestaat niet. Mongoose genereert dan automatisch de tijdstempels en stelt ze in op de huidige tijdstempel, als de optie is ingeschakeld:

    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. Mangoest vind element in array

  2. Jest en Redis (probleem met unit-tests met databasecache)

  3. Nodejs UUIDv4 produceert een constante id-waarde bij gebruik in Mongoose

  4. MongoDB-schema voor het opslaan van gebruikerslocatiegeschiedenis