как я могу выполнить массовую вставку и продолжить в случае дублирования ключевой ошибки?
У меня есть коллекция с уникальным индексом в поле id
( not _id
) и некоторыми данными в нем. Затем я получаю больше данных, и я хочу добавить в коллекцию только несуществующие документы.
У меня есть следующий код:
let opts = {
continueOnError: true, // Neither
ContinueOnError: true, // of
keepGoing: true, // this
KeepGoing: true, // works
};
let bulk = collection.initializeUnorderedBulkOp( opts );
bulk.insert( d1 );
bulk.insert( d2 );
bulk.insert( d3 );
...
bulk.insert( dN );
let result = yield bulk.execute( opts ); // this keep throwing duplicate key error
И я просто хотят игнорировать ошибки и позволить массовому завершению со всеми операциями в очереди.
Я искал в npm module api и в MongoDB api для Bulk, initializeUnorderedBulkOp и документы для Массовая запись без везения.
Также в документах для неупорядоченных операций они говорят:
Обработка ошибок
Если во время обработки одной из операций записи произошла ошибка, MongoDB продолжит обработку оставшихся операций записи в списке.
Это неверно (по крайней мере, в моем случае): (
Любые идеи приветствуются!