我正在使用BulkWriteWithOptions在DB中插入多个文档。我想要插入的文档,以便我可以知道哪个插入,失败或重复文档。 以下是我正在使用的代码
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());
}
});
有没有办法让插入的文件成为结果?
答案 0 :(得分:1)
不,您只能从repoAsyncResult.result().getUpserts()
获取已提交文件的ID(List<JsonObject>
.getAsString("_id")
将返回已插入的ID。)