Mongo UpdateOne Documentation से UpdateOne 3 तर्क लेता है फ़िल्टर ,अपडेट करें ,कॉलबैक , इसलिए मेरा मानना है कि आपको _id . पास करने की आवश्यकता है संग्रह को बदलने के लिए।
Update- find() एक कर्सर लौटाता है और foreach का उपयोग करने के लिए इसे find().toArray().then(..so on)
का उपयोग करके एक ऐरे में कनवर्ट करता है।
// @route PATCH api/swap
// @desc replace date
// @access Public
router.put("/swap", (req, res) => {
const firstDate = req.body.firstDate;
const secondDate = req.body.secondDate;
console.log(firstDate, secondDate);
Card.find().toArray().then(cards=>cards.forEach(card => {
if (card.date === firstDate) {
return card.updateOne( { date: firstDate } ,{ $set: { date: secondDate } });
} else if (card.date === secondDate) {
return card.updateOne( { date: secondDate },{ $set: { date: firstDate } });
} else {
return card;
}
});
}))
.then(() => console.log("working"));
});