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

Opdater og returner dokument i Mongodb

collection.update() vil kun rapportere antallet af dokumenter, der var berørt, til sit eget tilbagekald.

For at hente dokumenterne, mens du redigerer, kan du bruge collection.findOneAndUpdate() i stedet (tidligere .findAndModify() ).

collection.findOneAndUpdate(
    { "code": req.body.code },
    { $set: req.body.updatedFields },
    { returnOriginal: false },
    function (err, documents) {
        res.send({ error: err, affected: documents });
        db.close();
    }
);

returnOriginal mulighed (eller new med Mongoose) giver dig mulighed for at specificere, hvilken version af et fundet dokument (original [standard] eller opdateret) der sendes til tilbagekaldet.

returnDocument: "before" | "after" virker til version 3.6.9 .

Ansvarsfraskrivelse:Dette svar henviser i øjeblikket til Node.js-driveren fra version 3.6. Efterhånden som nye versioner frigives, skal du tjekke deres dokumentation for muligvis nye advarsler om udfasning og anbefalede alternativer.



  1. Inkluder specifikke felter i et wildcard-indeks i MongoDB

  2. Robust meddelelsesserialisering i Apache Kafka ved hjælp af Apache Avro, del 1

  3. Hvordan bruger man forårsdata mongo @CompoundIndex med undersamlinger?

  4. Analyse af langsomme forespørgsler i MongoDB