Для удаления документов в MongoDB предусмотрены функции deleteOne() - удаляет один документ и deleteMany() - позволяет удалить несколько документов. В качестве параметра в эти функции передается фильтр удаляемых документов.
Например, удалим документ, в котором name="Tom"
:
db.users.deleteOne({name : "Tom"})
В итоге первый найденный документ с name=Tom будет удален. После удаления консоль отображает нам объект, в котором параметр deletedCount
указывает на количество удаленных документов:
test> db.users.deleteOne({name : "Tom"}) { acknowledged: true, deletedCount: 1 }
Для удаления всех документов, которые соответствуют фильтру, применяется функция deleteMany():
db.users.deleteMany({name : "Tom"})
Причем, как и в случае с find, мы можем задавать условия выборки для удаления различными способами (в виде регулярных выражений, в виде условных конструкций и т.д.):
db.users.deleteOne({name : /^T\w+/i}) db.users.deleteOne({age: {$lt : 30}})
Чтобы удалить разом все документы из коллекции, надо оставить пустым параметр запроса:
db.users.deleteMany({})
Мы можем удалять не только документы, но и коллекции и базы данных. Для удаления коллекций используется функция drop:
db.users.drop()
И если удаление коллекции пройдет успешно, то консоль выведет:
true
Чтобы удалить всю базу данных, надо воспользоваться функцией dropDatabase():
db.dropDatabase()