MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Kann die Eigenschaft createdAt in Mungo nicht aktualisieren?

Da einige der Dokumente erstellt wurden, als die timestamps Option auf false gesetzt wurde (dies ist der Standardwert), kennt Mongoose diese Zeitstempel nicht. Daher item._id.getTimestamp() gibt undefiniert zurück.

Was Sie tun können, ist, die Einträge neu zu erstellen, in denen createdAt ist nicht vorhanden. Mongoose generiert dann automatisch die Zeitstempel und setzt sie auf den aktuellen Zeitstempel, wenn die Option aktiviert ist:

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