Mongoose Soft Delete
mongoose-soft-delete is simple and lightweight plugin that enables some basic required functionality for mongoose.
Features
- Soft Delete document using destroy method.
Methods and Fields | Description |
---|---|
destroy() | method on document (do not override standard remove() method) |
deleted | (true-false) key on document |
deletedAt | Add key to store time of deletion |
- Restore deleted documents using restore method
Feature | Description |
---|---|
Bulk destroy and restore | Bulk Destroy |
Option to override static methods | count, countDocuments, find, findOne, findOneAndUpdate, update |
Disable model validation on destroy | Disable Validation |
Option to create index on destroy fields | deleted, deletedAt, deletedBy |
Installation
Install using npm
npm install mongoose-soft-delete
Usage
Setup
const mongooseSoftDelete = ; const TestSchema = name: String; // Apply on specific model.// Can apply globally : eg: mongoose.plugin(mongooseSoftDelete, {})TestSchema; const Test = mongoose;
Options
paranoid : it needs to be true for soft deletion.
Simple usage
const test = name: 'Test' ;test; var exampleTestId = mongooseTypes;
Get sot soft deleted data.
// pass *{ paranoid: false }* as option.// This will return response including deleted documents.test;
Bulk destroy and restore
var idUser = mongooseTypes; // destroy multiple object, callbackTest;Test; // destroy multiple object, promiseTest;Test; // Restore multiple object, callbackTest;Test; // Restore multiple object, promiseTest;Test;
Create index on fields
TestSchema; // Index only specific fieldsTestSchema;// orTestSchema;
Method overridden
We have the option to override all standard methods or only specific methods. Overridden methods will exclude deleted documents from results, documents that have deleted = true
. Every overridden method will have two additional methods, so we will be able to work with deleted documents.
NOTE : Method will be overridden if paranoid is true
only not deleted documents |
---|
count() |
find() |
findOne() |
findOneAndUpdate() |
update() |