Выполнение remove()
без условия фильтра может быть очень медленным, поскольку каждый документ должен быть удален из файлов данных коллекции и любых существующих индексов (включая индекс по умолчанию для _id).
Если вы удаляете все документы в коллекции, и особенно если вы используете только индекс по умолчанию или вы можете легко воссоздать свои индексы из кода приложения, вы можете вместо этого drop()
собрание, а затем начните добавлять новые данные.
Вы можете дополнительно минимизировать время, когда коллекция кажется пустой или частично заполненной, используя команду renameCollection
like (в псевдо-Python):
for new_record in new_records:
db.newcollection.insert(new_record)
for index_spec in index_specs:
db.newcollection.ensure_index(index_spec)
db.oldcollection.drop()
db.command('renameCollection', 'newcollection', to='oldcollection')