Mangouste findOneAndUpdate de mettre à Jour Plusieurs Champs
La findOneAndUpdate méthode ne fonctionne pas correctement. Je suis en train de mettre à jour tous les champs de tous à la fois, mais c'est seulement une mise à jour (réglage) le dernier champ. C'est toujours seulement le dernier champ. Quelqu'un peut-il me dire ce que je fais mal ou que puis-je faire pour avoir l'effet escompté?
C'est mon findOneAndUpdate code:
Book.findOneAndUpdate({_id:bookId},{$set:{"name": name},$set:{"genre": genre},$set:{"author": author},$set:{"similar": similar}}).exec(function(err, book){
if(err){
console.log(err);
res.status(500).send(err);
} else {
res.status(200).send(book);
}
});
Vous devez vous connecter pour publier un commentaire.
Vous utilisez le
$set
opérateur à plusieurs reprises. La syntaxe correcte pour$set
est :Vous avez besoin de changer votre mise à jour argument comme ceci:
$push: { <field>: <value>, ..}
à la "mise à jour" argument:{ $set: { <field1>: <value1>, ... }, $push: { <field>: <value>, ..} }