MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mettre à jour et renvoyer le document dans Mongodb

collection.update() ne signalera que le nombre de documents qui ont été affectés à son propre rappel.

Pour récupérer les documents en cours de modification, vous pouvez utiliser collection.findOneAndUpdate() à la place (anciennement .findAndModify() ).

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

Le returnOriginal option (ou new avec Mongoose) vous permet de spécifier quelle version d'un document trouvé (original [par défaut] ou mise à jour) est transmise au rappel.

Le returnDocument: "before" | "after" fonctionne pour la version 3.6.9 .

Clause de non-responsabilité :cette réponse fait actuellement référence au pilote Node.js à partir de la version 3.6. Au fur et à mesure que de nouvelles versions sont publiées, consultez leur documentation pour d'éventuels nouveaux avertissements d'obsolescence et des alternatives recommandées.