DEV Community

Cover image for 44-Nodejs Course 2023: Destroying The Model
Hasan Zohdy
Hasan Zohdy

Posted on

44-Nodejs Course 2023: Destroying The Model

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,
    });
  }
Enter fullscreen mode Exit fullscreen mode

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();
}
Enter fullscreen mode Exit fullscreen mode

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,
      });
  }
Enter fullscreen mode Exit fullscreen mode

๐ŸŽจ 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

Packages & Libraries

React Js Packages

Courses (Articles)

Top comments (0)