我使用的是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
    }
}

10-06 11:43