Как удалить элемент из базы данных в Node.js?

«Как удалить элемент из базы данных в Node.js?» — вопрос из категории Базы данных, который задают на 26% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Node.js удаление элемента из базы данных зависит от типа БД и используемой библиотеки (ORM/ODM или нативный драйвер).

Пример с Mongoose (MongoDB):

// Удаление по ID
await User.findByIdAndDelete(userId);
// Удаление по условию
await User.deleteOne({ email: 'old@example.com' });
// Удаление нескольких документов
await User.deleteMany({ status: 'inactive' });

Пример с Sequelize (SQL):

// Удаление одной записи
await User.destroy({ where: { id: userId } });
// Удаление с условием
await User.destroy({ where: { createdAt: { [Op.lt]: new Date('2023-01-01') } } });

Пример с нативным драйвером pg (PostgreSQL):

const result = await pool.query('DELETE FROM users WHERE id = $1 RETURNING *', [userId]);
console.log(`Удален пользователь: ${result.rows[0].email}`);

Ключевые моменты:

  • Безопасность: Всегда используйте параметризованные запросы или методы ORM для предотвращения SQL-инъекций.
  • Транзакции: Для согласованного удаления связанных данных оберните операции в транзакцию.
  • Soft Delete: В production часто реализуют "мягкое" удаление, добавляя флаг isDeleted или поле deletedAt, чтобы сохранить историю данных.