Каков наилучший способ для этого?
Вы нашли это. Существует только два способа очистки коллекции:
db.some_coll.remove({})
: который удаляет все по одному. Это занимает много времени, потому что каждое удаление так же дорого, как и вставка.
db.some_coll.drop()
: просто очищает всю коллекцию.
Я хочу, чтобы эффективно удалить все данные целиком, но без потери коллекции.
Почему бы не отказаться от коллекции? Вы хотите удалить все данные, все, что вам нужно сделать, - это воссоздать индексы и, возможно, настройки в коллекции (только только для коллекций).
Восстанавливающие индексы очень простой. Итак, что такое зависание?
У меня также осколок. Если я использую drop, я должен перенастроить его для совместного использования. Как я могу сделать это прозрачно для приложения? – Julias
Облицовка коллекции похожа на повторное создание индекса, за исключением того, что вы потеряете данные в базе данных конфигурации в соответствии с вашими кусками. Вам нужно будет определить * «прозрачно для приложения» *? Вы удаляете кучу данных, приложение будет замечено. –
Да, конечно. Моя бизнес-логика - это удаление данных и вставка новых данных. Я знаю, что есть период времени, когда данные не будут постоянно заполняться. Но я хочу, чтобы настройка совместного доступа была прозрачной для моего сервера приложений. – Julias