mongodb - 在 MongoDB java 中使用 ordered as false 批量写入时处理异常

标签 mongodb mongodb-query mongodb-java

我正在使用 Mongo DB java 驱动程序:

collection.bulkWrite(documents);

我有 100 万条记录要插入。如果其中一条记录的插入失败,则在第一次失败时将不会插入剩余的记录。 为了避免这种情况,我发现 BulkWriteOptionsorderedfalse;

collection.bulkWrite(documents, new 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
    }
}

关于mongodb - 在 MongoDB java 中使用 ordered as false 批量写入时处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35168361/

相关文章:

mongodb - 在 Mongo shell 中使用 undefined variable

mongodb 3.6 arrayFilters 需要一个顶级字段名称

arrays - 从 MongoDb 中的数组的数组中删除元素

java - 对 Spring Data Mongo 存储库提供限制

spring - 使用Java在mongoDB中保存带有图像的对象(也保存对象数据和图像)

mongodb - pymongo 无法连接到远程服务器上的数据库

mongodb - 如何验证分片?

mongodb - mongo查询多个条件

java - 从 .toString() 判断 BasicMongoDBObject 是否有效?

java - Java 中的 MongoDB 文档更新 : coding error or driver bug?