Mise À Jour Et Le Document De Retour Dans Mongodb
Je veux obtenir les documents mis à jour. C'est mon code d'origine et avec les mises à jour mais ne pas retourner le document.
collection.update({ "code": req.body.code },{$set: req.body.updatedFields}, function(err, results) {
res.send({error: err, affected: results});
db.close();
});
J'ai utilisé toArray fonction, mais cela a donné d'erreur "Impossible d'utiliser un writeConcern sans condition de rappel":
collection.update({ "code": req.body.code },{$set: req.body.updatedFields}).toArray( function(err, results) {
res.send({error: err, affected: results});
db.close();
});
Des idées?
OriginalL'auteur user3803096 | 2014-07-14
Vous devez vous connecter pour publier un commentaire.
de la collection.mise à jour()
ne rapporte que le nombre de documents qui ont été touchés de sa propre fonction de rappel.Pour récupérer les documents en le modifiant, vous pouvez utiliser
de la collection.findOneAndUpdate()
à la place (anciennement.findAndModify()
).Remarque qu'il va modifier tous les documents retournés où
.update()
attendmulti: true
à faire de même.il est obsolète maintenant. utilisation
collection.findOneAndUpdate
à la place!findOneAndUpdate semble pour récupérer le document à l'état, c'est avant d'être modifié. Je pense que la question a été de mieux les cibler pour obtenir le résultat de l'objet
réglage de la
returnOriginal
option à false renvoie l'objet mise à jourOriginalL'auteur Jonathan Lonowski
La solution est de mettre: {returnOriginal: false}.
OriginalL'auteur milosnkb
Ne pouvait pas trouver un moyen de mettre à jour de nombreux et retourner les enregistrements modifiés dans docs, j'ai donc fait une solution de contournement.
Au moins un défaut que je peux trouver avec la méthode ci-dessous est, vous ne seriez pas en mesure de dire si le document est modifié ou avait déjà la valeur que vous utilisez:
OriginalL'auteur mido
La caisse de la WriteResult objet:
http://docs.mongodb.org/manual/reference/method/db.collection.update/#writeresults-update
résultat devrait avoir quelque chose comme:
Si vous souhaitez que la mise à jour des résultats, faire une autre requête avec la clé primaire.
OriginalL'auteur Venkat Rangan