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