我使用的是Mango DB Java驱动程序:
托收单(文件);
我有1000000条记录要插入。如果插入其中一条记录失败,则在第一次失败时,将不会插入其余的记录。
为了避免这种情况,发现有bulkwrite选项的ordered为false;
collection.bulkwrite(文档,新的bulkwriteoptions().ordered(false))
如果在上述操作过程中发生异常,是否可以获取BulkWrite失败的记录列表,并再次尝试插入这些记录:?
最佳答案
我想你在找类似的东西。
BulkWriteOptions bulkWriteOptions = new BulkWriteOptions();
bulkWriteOptions.ordered(true);
BulkWriteResult bulkWriteResult = null;
try {
bulkWriteResult = mongoCollection.bulkWrite(updateDocuments,
bulkWriteOptions);
} catch (BulkWriteException e) {
List<BulkWriteError> bulkWriteErrors = e.getWriteErrors();
for (BulkWriteError bulkWriteError : bulkWriteErrors) {
int failedIndex = bulkWriteError.getIndex();
Long failedEntity = entityList.get(failedIndex);
System.out.println("Failed record: " + failedEntity);
//handle rollback
}
}