我正在使用BulkWriteWithOptions在数据库中插入多个文档。我想要插入的文档,以便可以知道插入,失败或重复的文档。
以下是我正在使用的代码
mongoClient.bulkWriteWithOptions(collection, operations, options, repoAsyncResult -> {
if (repoAsyncResult.failed()) {
LOGGER.error("Bulk insertion failed : {}", repoAsyncResult.cause().getMessage());
if(repoAsyncResult.cause() instanceof MongoBulkWriteException ){
MongoBulkWriteException exception = (MongoBulkWriteException)repoAsyncResult.cause() ;
exception.getWriteErrors().forEach(error -> {
LOGGER.error("Insert Error : " + error.getMessage());
});
}
repoFuture.fail(repoAsyncResult.cause());
} else {
LOGGER.info("Bulk insertion successful : {}", repoAsyncResult.result().toJson());
repoFuture.complete(repoAsyncResult.result().toJson());
}
});
有什么方法可以获取插入的文档吗?
最佳答案
不可以,您只能从repoAsyncResult.result().getUpserts()
获取一个加注文档的ID(一个List<JsonObject>
,其.getAsString("_id")
将返回加注的ID。)