sql >> Databasteknik >  >> NoSQL >> MongoDB

Uppdatera och returnera dokument i Mongodb

collection.update() kommer endast att rapportera antalet dokument som påverkades till sin egen återuppringning.

För att hämta dokumenten medan du ändrar kan du använda collection.findOneAndUpdate() istället (tidigare .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 alternativ (eller new with Mongoose) låter dig ange vilken version av ett hittat dokument (original [standard] eller uppdaterad) som skickas till återuppringningen.

returnDocument: "before" | "after" fungerar för version 3.6.9 .

Friskrivningsklausul:Detta svar hänvisar för närvarande till Node.js-drivrutinen från och med version 3.6. När nya versioner släpps, kontrollera deras dokumentation för eventuella nya utfasningsvarningar och rekommenderade alternativ.



  1. Hitta nycklar med jokertecken

  2. Komma igång med Redis Client API:er

  3. En utvecklarguide till MongoDB Replica Sets

  4. Vad är skillnaden mellan Spring Datas MongoTemplate och MongoRepository?