Монго Java-драйвер: индексы восстановления после сброса коллекции - PullRequest
0 голосов
/ 11 октября 2011

У меня есть необходимость удалить все данные из коллекции Монго. Сброс коллекции работает быстрее, чем collection.remove(new BasicDBObject()). Но это также удаляет определения индекса. Поэтому я хочу восстановить определения индекса после удаления коллекции.

В общем у меня следующий план:

  1. Получить все определения индекса перед удалением: http://www.mongodb.org/display/DOCS/Java+Tutorial#JavaTutorial-GettingaListofIndexesonaCollection
  2. Воссоздать определения после удаления: 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"));
}

Если нет - как лучше всего достичь моих целей?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 11 октября 2011

Ты рядом.Вам нужно будет прочитать параметры индекса полученных индексов и применить их к вновь созданному индексу, используя версию метода createIndex (ключ DBObject, параметры DBObject).

...