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

Aggiorna e restituisci il documento in Mongodb

collection.update() riporterà solo il numero di documenti che sono stati interessati alla propria richiamata.

Per recuperare i documenti durante la modifica, puoi utilizzare collection.findOneAndUpdate() invece (precedentemente .findAndModify() ).

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

Il returnOriginal opzione (o new con Mongoose) consente di specificare quale versione di un documento trovato (originale [predefinito] o aggiornato) viene passata alla richiamata.

Il returnDocument: "before" | "after" funziona per la versione 3.6.9 .

Dichiarazione di non responsabilità:questa risposta si riferisce attualmente al driver Node.js a partire dalla versione 3.6. Quando vengono rilasciate nuove versioni, controlla la loro documentazione per eventuali nuovi avvisi di deprecazione e alternative consigliate.