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.