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

Dokument in Mongodb aktualisieren und zurücksenden

collection.update() meldet nur die Anzahl der betroffenen Dokumente an seinen eigenen Callback.

Um die Dokumente während der Bearbeitung abzurufen, können Sie collection.findOneAndUpdate() verwenden stattdessen (früher .findAndModify() ).

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

Das returnOriginal Option (oder new mit Mongoose) können Sie festlegen, welche Version eines gefundenen Dokuments (Original [Standard] oder aktualisiert) an den Callback übergeben wird.

Das returnDocument: "before" | "after" funktioniert für Version 3.6.9 .

Haftungsausschluss:Diese Antwort bezieht sich derzeit auf den Node.js-Treiber ab Version 3.6. Wenn neue Versionen veröffentlicht werden, überprüfen Sie deren Dokumentation auf möglicherweise neue Verfallswarnungen und empfohlene Alternativen.