MongoDB provides the $unset
operator that deletes a particular field from a document. If the field does not exist in the document, the $unset
operator does nothing.
Here is an example:
const mongoose = require('mongoose')
const { Schema } = mongoose
const User = mongoose.model(
'User',
new Schema({
name: String,
role: String
})
)
// Remove `Alex` role
await User.updateOne({ name: 'Alex' }, { $unset: { role: 1 } })
Alternatively, you can retrieve the document from the MongoDB collection, set the value of the field you want to delete to undefined
and then save it. In Mongoose, setting a document field to undefined
will send $unset
command to MongoDB:
// Retrieve document
const user = await User.findOne({ name: 'Alex' })
// Delete role field
user.role = undefined
// Save changes
await user.save()
✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.