Очистка всех данных из коллекции
Иногда может потребоваться удалить все документы из коллекции. MongoDB предоставляет два основных способа достижения этой цели: использование deleteMany({}) для удаления всех документов или использование drop() для удаления всей коллекции.
Сначала давайте создадим новую коллекцию products с некоторыми примерами данных.
db.products.insertMany([
{ name: "Laptop", price: 1000, category: "Electronics" },
{ name: "Smartphone", price: 500, category: "Electronics" },
{ name: "Headphones", price: 100, category: "Electronics" }
]);
Способ 1: Удаление всех документов с помощью deleteMany()
Вы можете удалить все документы из коллекции, передав пустой фильтр {} методу deleteMany(). Этот подход удаляет данные, но сохраняет саму коллекцию, включая ее индексы.
db.products.deleteMany({});
Вывод показывает, что все три документа были удалены.
{ "acknowledged": true, "deletedCount": 3 }
Вы можете убедиться, что коллекция теперь пуста, выполнив запрос find().
db.products.find();
Эта команда не вернет никаких документов.
Способ 2: Удаление всей коллекции с помощью drop()
Метод drop() является более деструктивным. Он полностью удаляет коллекцию, включая все ее документы, индексы и связанную метаинформацию.
Сначала давайте повторно вставим пример данных, чтобы у нас была коллекция для удаления.
db.products.insertMany([
{ name: "Laptop", price: 1000, category: "Electronics" },
{ name: "Smartphone", price: 500, category: "Electronics" },
{ name: "Headphones", price: 100, category: "Electronics" }
]);
Теперь полностью удалим коллекцию products.
db.products.drop();
Вывод true подтверждает, что коллекция была успешно удалена.
true
Если вы теперь попытаетесь выполнить запрос к коллекции products, вы не получите никаких результатов, поскольку коллекция больше не существует.
db.products.find();
Эта команда не даст никакого вывода, так как коллекция удалена. Чтобы выйти из оболочки mongosh, вы можете набрать exit или нажать Ctrl+D.