svs*_*eja 4 mongodb mongodb-java mongodb-query
我正在使用 Mongo DB java 驱动程序:
collection.bulkWrite(documents);
Run Code Online (Sandbox Code Playgroud)
我有 100 万条记录要插入。如果其中一条记录的插入失败,则在第一次失败时,剩余的记录将不会被插入。为了避免这种情况,我发现有BulkWriteOptionswith orderedas false;
collection.bulkWrite(documents, new BulkWriteOptions().ordered(false) )
Run Code Online (Sandbox Code Playgroud)
如果上述操作过程中出现异常,我们能否获取失败的记录列表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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9740 次 |
| 最近记录: |