Я хотел бы найти самый эффективный способ дублировать документы в MongoDB , учитывая, что я хочу взять пачку документов из существующей коллекции, обновить одно из их полей, сбросив _id длясгенерируйте новый и поместите их обратно в коллекцию для создания дубликатов.
Обычно это создает функцию "ветвления" в MongoDB, позволяющую пользователям изменять данные в двух отдельных ветвях.в то же время.
Я пробовал следующие вещи:
- На моем сервере получайте куски данных в нескольких потоках, изменяйте данные и вставляйте измененные данные с новым _idв базе
Это в основном работает, но производительность не очень хорошая (~ 20 с на 1 миллион элементов).
В будущей версии MongoDB (протестирована на версии 4.1.10) используйте
новый механизм агрегирования $ out для вставки в ту же коллекцию
Это не похоже наработать и выдавать сообщение об ошибке "errmsg" : "$out with mode insertDocuments is not supported when the output collection is the same as the aggregation collection"
Есть идеи, как быть быстрее, чем первый подход?Спасибо!