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
с?