Для бонусных баллов, почему существует ограничение на количество сбросов, которое можно сбросить?
MongoDB, вероятно, делает это, чтобы защитить себя. Если вы введете dropDups
в неправильное поле, вы можете объединить весь набор данных и заблокировать БД с помощью операций удаления (которые «столь же дороги», как и записи).
Как добавить индекс и избавиться от дубликатов?
Итак, первый вопрос: почему вы создаете уникальный индекс в поле id
?
MongoDB создает поле _id
по умолчанию, которое автоматически уникально индексируется и . По умолчанию MongoDB заполняет _id
ObjectId
, однако вы можете переопределить это любым значением, которое вам нравится. Так что, если у вас есть готовый набор значений ID, вы можете использовать эти .
Если вы не можете повторно импортировать значения, скопируйте их в новую коллекцию, изменив id
на _id
. Затем вы можете удалить старую коллекцию и переименовать новую. ( обратите внимание, что вы получите кучу «ошибок повторяющихся ключей», убедитесь, что ваш код перехватывает и игнорирует их )