Hi All! I am learning how to fetch data from MongoDB using Express (Node). I am unable to perform updateOne() function as I am getting the error - TypeError: Cannot read property ‘name’ of undefined. Here’s the code snippet:
router.put('/api/v3/app/events/:id', (req, res) => {
const filter = { _id: new ObjectId(req.params.id) };
const options = { upsert: true };
const updatedDoc = {
$set: {
name: req.params.body.name, tagline: req.params.body.tagline,
schedule: req.params.body.schedule, description: req.params.body.description, files: req.params.body.files,
moderator: req.params.body.moderator, category: req.params.body.category,
sub_category: req.params.body.sub_category, rigor_rank: parseInt(req.params.body.rigor_rank)
},
}
updateData(filter, updatedDoc, options)
.then((result) => {
console.log(${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s))
res.status(200).end()
})
.catch((err) => {
console.log(err)
res.status(500).end()
})
}) const updateData = (filter,body,options) => {
const collection = db.collection('events')
const result = collection.updateOne(filter, body, options)
return result;
}