We've proceeded with a nice progress in the saving process, now let's go to the deleting step of the model.
Destroy Method
It actually works exactly like the delete
method except that the destroy
method will be called from the model itself directly.
// src/core/database/model/model.ts
/**
* Delete the document from database
*/
public async destroy() {
await queryBuilder.deleteOne(this.getCollectionName(), {
_id: this.data._id,
});
}
Nothing new here, we just called the query builder to delete the document from the database.
Now the model will keep the data in the memory, but it will be deleted from the database.
Let's give it a try
import User from './models/users';
const user = await User.find(1);
if (user) {
await user.destroy();
}
And that's it!
But what if we called it in a model that does not have an id?
In that case we shall skip the deletion process and just return the model instance.
// src/core/database/model/model.ts
/**
* Delete the document from database
*/
public async destroy() {
if (! this.data._id) return;
await queryBuilder.deleteOne(this.getCollectionName(), {
_id: this.data._id,
});
}
🎨 Conclusion
We added a new method called destroy
which will delete the document from the database using the model itself.
🚀 Project Repository
You can find the latest updates of this project on Github
😍 Join our community
Join our community on Discord to get help and support (Node Js 2023 Channel).
🎞️ Video Course (Arabic Voice)
If you want to learn this course in video format, you can find it on Youtube, the course is in Arabic language.
💰 Bonus Content 💰
You may have a look at these articles, it will definitely boost your knowledge and productivity.
General Topics
- Event Driven Architecture: A Practical Guide in Javascript
- Best Practices For Case Styles: Camel, Pascal, Snake, and Kebab Case In Node And Javascript
- After 6 years of practicing MongoDB, Here are my thoughts on MongoDB vs MySQL
Packages & Libraries
- Collections: Your ultimate Javascript Arrays Manager
- Supportive Is: an elegant utility to check types of values in JavaScript
- Localization: An agnostic i18n package to manage localization in your project
React Js Packages
Courses (Articles)
Top comments (0)