У меня есть необходимость удалить все данные из коллекции монго. Удаление коллекции работает быстрее, чем collection.remove(new BasicDBObject())
. Но он также удаляет определения индексов. Поэтому я хочу восстановить определения индекса после удаления коллекции.
В общем у меня следующий план:
- Получите все определения индексов перед удалением: http://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-GettingaListofIndexesonaCollection
- Воссоздайте определения после удаления: http://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-CreatingAnIndex
Для меня проблема заключается в точном значении, которое должно быть получено/передано для восстановления индекса. Например. будет следующая корректная работа для всех типов индексов:
List<DBObject> storedDefinitions = coll.getIndexInfo();
coll.drop();
for (DBObject storedDefinition : storedDefinitions) {
coll.createIndex(storedDefinition.get("key"));
}
Если нет - как лучше всего достичь моих целей?
Спасибо за любую помощь!