问题标签 [reactive-mongo-java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
569 浏览

mongodb - 如何检索新文档并将其添加到 MongoDb 集合中抛出 com.mongodb.reactivestreams.client.MongoClient

上下文:我编写了一个接收简单消息的 Kafka Consumer,我想使用 com.mongodb.reactivestreams.client.MongoClient 将其插入 MongoDb。虽然我知道我的问题是关于如何正确使用 MongoClient 让我通知我的堆栈:我的堆栈是 Micronaut + MongoDb 反应式 + Kotlin。

免责声明:如果有人在 java 中提供答案,我可以将其翻译成 Kotlin。您可以忽略下面的 Kafka 部分,因为它按预期工作。

这是我的代码

好吧,上面的代码是我得到的最接近的。它没有提示任何错误。正在打印

我想这证明代码正确连接到数据库,但我希望打印第一个文档。

有三个文件:

mongodb-express视图

我的最终目标是将我从 Kafka Listener 收到的消息插入到 MongoDb。任何线索将不胜感激。

整个代码可以在git hub中找到

*** 在苏珊的问题之后编辑

这是打印的内容

打印结果

0 投票
1 回答
248 浏览

java - 使用 java 在 Micronaut 中将 MongoDb ObjectId _id 更改为字符串

我有以下 mongo 实体的 Pojo 类

当我按照以下代码获取 mongo 结果时

id id 映射了这样的东西

在此处输入图像描述

但是,在数据库中,id 是这样的

在此处输入图像描述

如何以正确的方式映射此 id,我正在使用带有 java 15 的 Micronaut 框架

0 投票
1 回答
582 浏览

java - 与 POJO 映射反应的 MongoDb Java 驱动程序以类型安全的方式查找文档列表

我有一堆,DocumentCollection找回所有这些。这是我的情况:

  1. 我正在使用 Java Reactive Streams 驱动程序
  2. 我正在使用将CodecRegistry我的Document反序列化为我的Pojo

问题是该find()方法的所有风格都返回 aFindPublisher<Pojo>并且不用说任何类型的值发射都会导致Pojo对象的返回。我想要一个List<Pojo>或一个Set<Pojo>退货。如何返回 aList<Pojo或 a Set<Pojo>

quickstart中,他们使用find().first()which 返回单个对象Document,因此单个Pojo对象是有意义的。没有返回多个的示例Document

0 投票
1 回答
385 浏览

java - 如何在没有任何查询过滤器的情况下使用 ReactiveMongoTemplate 计算 mongodb 集合?

我想在我的 java spring 应用程序中确定 mongodb 集合大小。我知道反应式反应 Mongo 模板有一个count()方法可以做到这一点,但是它需要一个查询参数。

所以我的解决方案是:

但是我不喜欢这个解决方案,因为我必须使用船长明显的标准。

这个问题有更好的解决方案吗?

谢谢!

0 投票
1 回答
839 浏览

java - 我们如何使用 springreactor 比较两个通量值

目前我是响应式编程的新手,我已经在 2 个文档中添加了数据,所以目前我要做的是只将那些数据返回给两个文档中 tokenIdentifier 相同的客户端。

请参考以下代码:

我有 2 个收藏

我有一个控制器,它将只返回 tokenData.getTokenIdentifier() == TURCollection.getTokenIdentifier() 的那些 tokenData。

所以

但是 block() 代码在反应式编程中不起作用任何人都可以帮助我如何以反应方式比较两个通量的值吗?

0 投票
1 回答
30 浏览

java - 保存模型类的对象的顺序是什么?

我有一个 JSON 的 POJO 类,如下所示:

这里所有的 3 个类——PortCall、PreviousPortCall、NextPortCall 都用@Document 进行了注解。PortCall.java 中的任何更改都会对其直接的上一个和下一个对象产生影响,这些对象由 PreviousPortCall 和 NextPortCall 引用如果我在 Mongo DB 中更新 PortCall.java,我应该以哪种顺序保存对象?我应该先保存 PreviousPortCall 和 NextPortCall,然后再保存 PortCall.java,反之亦然,为什么?

0 投票
1 回答
87 浏览

java-8 - 无法从 Flux 转换到单声道

在这里,我试图调用 SimpleReactiveMongoRepository 的 saveAll() 即 public Flux saveAll(Iterable entity)

0 投票
1 回答
45 浏览

mongodb - Mongo 批量替换为 200k+ 操作

例如,我在集合中有这样的文件:

我需要通过修改或删除values列以及其中key&time是过滤器来更新来自 CSV 文件的集合。

到目前为止我已经尝试过:

  • DeleteMany(带有or(and(key: key1), and(time: time2)), ... 276k 更多or参数)+ InsertMany 带有 276k 文档 => ~ 90 秒
  • filter: and(key: key1, time: time2)使用 ( ) => ~ 40 秒批量替换一个
  • 将大批量拆分为几个较小的批次(7500 似乎是性能最高的),但这一个在数据库操作方面不是原子的 => ~ 35 秒

笔记:

  • 所有测试都是bulk.ordered = false为了提高性能。
  • 有唯一索引key: 1, time: -1

有没有可能优化这种请求?我知道 Mongo 可以爆发到 ~80k 插入/秒,但是替换呢?

0 投票
0 回答
26 浏览

reactive-mongo-java - 使用reactivemongotemplate更新Mongo中的多级嵌入式文档

我有一个嵌入式文档。如何更新多级文档?在插入时,使用 Document 来存储文档。使用 更新嵌入文档时update.set(),我只能做一个字符串,而不是作为嵌入文档(将其存储为字符串而不是字符串)。

obj.getEmbeddedDocument()正在返回我一个对象。我可以使用 Gson 库进行更新,但它被存储为字符串而不是嵌入式文档。

有什么建议么?

0 投票
0 回答
114 浏览

spring-boot - SpringBoot 测试:ReactiveMongoRepository 的 NoSuchBeanDefinitionException

我正在尝试测试在 SpringBoot 上创建的响应式 mongoDB 应用程序的服务类。

我不使用嵌入式 mongodb!我只是想模拟存储库

这是反应式 mongo 存储库:

存储库,应该使用它:

和测试类:

主要配置:

可能是这种情况没关系,但测试配置是:

而且,运行测试后,我收到以下异常:

造成的:

我究竟做错了什么?有任何想法吗?