我正在使用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。)

07-24 20:21