Как очистить коллекцию, перестроить индекс и снова заполнить коллекцию? - PullRequest
0 голосов
/ 25 апреля 2019

API MongoDB в Azure (Cosmos DB) не поддерживает создание / перестройку / удаление уникальных индексов для коллекций, содержащих документы. Это реальная проблема при внесении изменений схемы в документы в коллекциях, если изменения влияют на индексы. В этих случаях я хотел бы удалить конфликтующий индекс до внесения изменений, а затем создать или перестроить индексы впоследствии. Примером может быть:

db.collection('example').dropIndexes(() => {
  db.collection('example').find().toArray(function (err, docs) {

    // Do changes to docs here, create new index etc.

  }
}

Поскольку это невозможно в Azure (dropIndexes() не удастся), что может быть возможным обходным путем? Можно ли каким-то образом сохранить документы в памяти при их удалении, а затем изменить индексы и заново вставить их после этого? Или переместить их в другую временную коллекцию, а затем переместить обратно, когда закончите? Если так, я бы оставил _id с?

...