java - 使用 vertx 在 mongoDB 中批量写入

标签 java mongodb vert.x

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

关于java - 使用 vertx 在 mongoDB 中批量写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49406233/

相关文章:

java - 批量插入实体到数据库(Quarkus,Hibernate)

node.js - 如何从 Mongoose 对象内嵌套的数组中提取数组元素?

带有 $in 的 mongodb 聚合查询的 Java 代码

java - 使用数组从 json 文件 java 获取 api 参数

java - 如果封装度太低,怎么可能获得不必要的紧密耦合

javascript - MongoDB 中的多个 $where 查询

java - 如何使用 vert.x java api 将服务器通知(推送通知)发送给客户端

java - 在构造函数中获取一组枚举并创建列表 - Java

java - 在hadoop中使用java系统属性

java - 在 JSON 中创建父属性