Удаление документов MongoDB
В предыдущих главах мы узнали, как добавлять данные в коллекции MongoDB и обновлять данные в них. В этой главе мы продолжим изучать удаление коллекций MongoDB.
Распространённые методы удаления документов включают deleteOne(), deleteMany() и findOneAndDelete().
Сценарии использования:
- Очистка данных: Удаление старых или недействительных данных, которые больше не нужны.
- Исправление данных: Удаление ошибочных или дублирующихся документов во время исправления данных.
- Автоматизированные задачи: Удаление документов на основе определённых условий в автоматизированных скриптах или задачах.
1、deleteOne()
Метод deleteOne() используется для удаления одного документа, соответствующего фильтру.
Синтаксис:
db.collection.deleteOne(filter, options)
- filter: Критерии запроса, используемые для поиска документа, который нужно удалить.
- options: (Необязательно) Необязательный объект параметров.
Пример
Возвращённый результат:
{
"acknowledged": true,
"deletedCount": 1
}
2、deleteMany()
Метод deleteMany() используется для удаления всех документов, соответствующих фильтру.
Синтаксис:
db.collection.deleteMany(filter, options)
- filter: Критерии запроса, используемые для поиска документов, которые нужно удалить.
- options: (Необязательно) Необязательный объект параметров.
Пример
Возвращённый результат:
{
"acknowledged": true,
"deletedCount": 1
}
3、findOneAndDelete()
Метод findOneAndDelete() используется для поиска и удаления одного документа и может опционально возвращать удалённый документ.
Синтаксис:
db.collection.findOneAndDelete(filter, options)
- filter: Критерии запроса, используемые для поиска документа, который нужно удалить.
- options: Необязательный объект параметров, например
projection、sortи т. д.
Пример
{ name: "Charlie" },
{ projection: { name: 1, age: 1 } }
);
findOneAndDelete возвращает удаленный документ; если соответствующий документ не найден, возвращает null.
Параметры операций удаления
Параметр options этих методов удаления обычно может включать следующие параметры:
- writeConcern: Определяет уровень подтверждения для операции записи.
- collation: Задает правила сопоставления, используемые при сравнении строк.
- projection(Применимо только к
findOneAndDelete): Определяет поля для возврата. - sort(Применимо только к
findOneAndDelete): Определяет порядок сортировки для определения документа, который нужно удалить.
Пример
Удаление одного документа:
db.myCollection.deleteOne({ name: "Alice" });
Удаление нескольких документов:
db.myCollection.deleteMany({ status: "inactive" });
Поиск и удаление одного документа:
db.myCollection.findOneAndDelete(
{ name: "Charlie" },
{ projection: { name: 1, age: 1 } }
);
Другие расширения