В одной из коллекций есть документы с полем "sc":[float]
. Я хочу перебрать все документы и изменить это на "sc": float
, т. Е. Удалить массив и присвоить значение float непосредственно ключу.MongoDB, WiredTiger: необходимо обновить одно поле во всех документах (700 тыс.). Какие побочные эффекты произойдут?
Не правда ли, что WiredTiger добавляет все обновленные документы вместо попыток сделать некоторые обновления на месте, такие как MMap?
Это в основном удваивает размер базы данных, при этом исходная половина является устаревшими данными.
Нужно ли мне звонить mongod -repair
, чтобы отменить эти устаревшие документы, или есть что-то еще, что мне нужно сделать?
Спасибо за объяснение. Я проверил его (несколько недель назад) на дублированном наборе данных и увидел, что все в порядке, поэтому я просто применил его к текущему набору данных. Это сработало, и до вашего объяснения мне стало интересно, почему. Мне просто не приходило в голову, что они будут повторно использовать освобожденное пространство ... стыдно за меня. –