Как уже было предложено - вы можете использовать .dropDatabase () , чтобы удалить всю базу данных , или .collection.drop () , чтобы удалить collection или, если это просто удалить все документы во всех коллекциях, вам нужно выполнить итерацию по списку коллекций и реализовать либо .collection.remove () , либо .collection.deleteMany () или .findAndModify () без какого-либо фильтра в условии запроса.
Чтобы удалить документы в каждой коллекции по отдельности:
сначала перечислить всю коллекцию имена, используя .getCollectionNames () , а затем удалите документы.
let colls = db.getCollectionNames() // Mongo shell can accept .Js Func's, if you've more collections you can use parallel as well
colls.forEach(eachColl => db[eachColl].remove({})) // or .deleteMany() or . findAndModify()
Таким образом вы все равно будете иметь базу данных и пустые коллекции, существующие на сервере MongoDB. Возможно, вы сможете вернуться через некоторое время, чтобы проверить список доступных коллекций или, возможно, переименовать несколько et c.
Но если вы просто не хотите смотреть на имена коллекций, которые будут существовать в ближайшем будущем, go впереди с drop
командами предпочтительнее удалить базу данных, так как вы хотели удалить все документы из всех коллекций - почему это предпочтительнее? потому что, в отличие от SQL баз данных, MongoDB автоматически создает базу данных и коллекцию, если вы впервые записываете документ в коллекцию в БД. Таким образом, в MongoDB вам может не понадобиться поддерживать базы данных с пустыми коллекциями.
Предположим, вы запрашиваете коллекцию с именем girlfriend
, которая находится в базе данных mylife
- Допустим, она уже удалена / отсутствует / никогда не существовала, тогда .find()
вернет []
пустой массив, такой же, как запрос пустая коллекция в БД - это преимущество MongoDB, поскольку она не вызывает ошибку при несовпадении имен.