sql >> Databáze >  >> NoSQL >> MongoDB

nelze aktualizovat vlastnost createdAt v mongoose?

Protože některé dokumenty byly vytvořeny, když timestamps volba byla nastavena na false (toto je výchozí hodnota), mongoose nebude znát tato časová razítka. Proto item._id.getTimestamp() vrátí se nedefinováno.

Co můžete udělat, je znovu vytvořit položky, kde createdAt neexistuje. Mongoose pak automaticky vygeneruje časová razítka a nastaví je na aktuální časové razítko, pokud je tato možnost povolena:

    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. IdMemberMap je null pomocí možností serializace reprezentace

  2. Spring a MongoDB:SAXParseException při čtení Bean Definitions

  3. Mongoose vložené dokumenty / DocumentsArrays id

  4. Neplatný příkaz přerušení (Node.js)