# How to delete a field from a document in Mongoose

By Atta Ur Rehman Shah (https://attacomsian.com/about). Published Jul 10, 2022. Topics: Node.js, Mongoose, MongoDB.
Canonical URL: https://attacomsian.com/blog/mongoose-delete-field

> A quick guide to learning how to use the $unset operator to remove a specific key from a MongoDB document using Mongoose.

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:

```javascript
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](https://attacomsian.com/blog/mongoose-find-documents) 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:

```javascript
// Retrieve document
const user = await User.findOne({ name: 'Alex' })

// Delete role field
user.role = undefined

// Save changes
await user.save()
```
