Обеспечивает ли MongoDBIndex перестройку?

Я читаю документацию MongoFB. По этому адресу http://docs.mongodb.org/manual/tutorial/build-indexes-on-replica-sets/ я прочитал "Создать новый индекс, используя sureIndex() в оболочке mongo, или аналогичный метод в вашем драйвере".. Эта операция создаст или перестроит индекс для этого экземпляра mongod "

Я хорошо понимаю? Если индекс уже присутствует, выполняет ли mongoDB перестройку?

Таким образом, разница с reIndex () заключается в том, что reIndex () выполняет перестройку по всем индексам коллекции. Это правильно?

1 ответ

Я считаю, что это либо ошибка на английском языке, либо речь идет о том, если вы перестраиваете индексы для реплик, так или иначе, документация для ensureIndex() конкретно говорится:

http://docs.mongodb.org/manual/reference/method/db.collection.ensureIndex/ (ссылка на которую приведена здесь: http://docs.mongodb.org/manual/tutorial/build-indexes-on-replica-sets/)

Если вы вызываете несколько методов sureIndex() с одной и той же спецификацией индекса в одно и то же время, только первая операция будет выполнена успешно, все остальные операции не будут иметь никакого эффекта.

Поэтому повторный вызов не должен привести к перестроению, если вы не перестраиваете свои индексы.

Если вы хотите перестроить индекс, вы должны сначала удалить его, а затем снова запустить ensureIndex():

Чтобы добавить или изменить параметры индекса, вы должны удалить индекс с помощью метода dropIndex() и выполнить еще одну операцию sureIndex() с новыми параметрами.

Если вы создаете индекс с одним набором параметров, а затем запускаете метод sureIndex() с теми же полями индекса и различными параметрами без предварительного удаления индекса, sureIndex() не будет перестраивать существующий индекс с новыми параметрами.

Другие вопросы по тегам