Насколько я понимаю, MongoDB просто запросит системную коллекцию, чтобы посмотреть, существует ли индекс, прежде чем он его создаст ...
http://www.mongodb.org/display/DOCS/Indexes#Indexes-AdditionalNotesonIndexes
> db.system.indexes.find();
Вы можете запустить getIndexes (), чтобы увидеть индексы Коллекции
> db.things.getIndexes();
Так что на самом деле вы бы просто добавили один запрос; это не восстановило бы это или сделало бы что-нибудь еще неочевидное.
Тем не менее, Я не думаю, что это была бы особенно хорошая идея . Это добавит ненужные накладные расходы, и, что еще хуже, может заблокировать вашу базу данных при создании индекса ... поскольку по умолчанию создание индекса блокирует вашу базу данных (если вы не запускаете его в фоновом режиме), например так:
> db.things.ensureIndex({x:1}, {background:true});
Однако обратите внимание ...
... при построении фонового режима используется
постепенный подход к построению
индекс, который медленнее, чем по умолчанию
режим переднего плана: время, чтобы построить
индекс будет больше.
Я думаю, что было бы намного лучше сделать это в коде, когда вы добавляете коллекции вместо каждого подключения к базе данных. Почему вы все равно добавляете и удаляете их?