问题标签 [spring-data-mongodb-reactive]

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 投票
0 回答
100 浏览

reactive-programming - 使用 spring-data-mongodb-reactive 的批量操作

是否可以使用 ReactiveMongoTemplate 或 spring-data-mongodb-reactive 执行 MongoDB 批量操作(如更新/更新)?

0 投票
1 回答
339 浏览

spring-webflux - 在 Spring WebFlux 中,如何链接来自多个服务/存储库的方法,以便“删除”多个 DB-Collections 中的元素?

1)关于问题的语境化:

我正在尝试使用 03 个不同的服务/存储库(userService + postService + userRepo)在 03 个不同的 DB-Collections(Reactive MongoDB)中“删除”项目;

我的目标是使用相同的链接代码同时删除一个对象(在每个集合中);

以下是上述情况的代码:

1.1) 代码:

当前工作状态:不工作;

当前行为:不执行任何删除,无论是 delete-userService、delete-postService 还是 delete-userRepo。


2)问题:

  • 如何删除不同 DB-Collections 中的不同元素,
    • 通过仅使用一个使用三个“删除方法”的“链式删除方法”
      • 三种不同的服务/repo(userService + postService + userRepo?

3)更新:

找到解决方案

非常感谢您的帮助

0 投票
0 回答
78 浏览

reactive-programming - 将 Reactive Mongo 与 Webflux 一起使用时找不到 Bean 错误

我正在做一个示例应用程序并尝试将 webflux 与响应式 mongo 一起使用。在 Intellij 中启动应用程序时出现以下错误

我在 gradle 中有以下条目

存储库代码如下

我尝试在存储库类中添加 @Repository 以及在 SpringBoot 应用程序中添加 @EnableReactiveMongoRepositories 但同样的错误。还尝试扩展 ReactiveCrudRepository。有什么我想念的吗?

0 投票
1 回答
352 浏览

spring-boot - 为什么我在 JDK 16.0.1、Spring Boot 2.5.1 和 Spring Data MongoDB 上使用默认配置的 Kotlin 1.5.10 得到“NoSuchFieldException:handle”?

新的新建项目在 JDK 16.0.1 上使用 Kotlin 1.5.10 和 Spring Boot 2.5.1(来自 Gradleorg.springframework.boot插件版本2.5.1)和 Spring Data MongoDB(通过org.springframework.boot:spring-boot-starter-data-mongodb-reactive)。我的 mongo 依赖项是testImplementation("de.flapdoodle.embed:de.flapdoodle.embed.mongo")- 请注意缺少的版本。这得到了解决de.flapdoodle.embed:de.flapdoodle.embed.mongo:3.0.0de.flapdoodle.embed:de.flapdoodle.embed.process:3.0.1

当我运行如下声明的集成测试时,

控制台出现如下异常,但测试成功。有什么办法可以消除噪音?

0 投票
0 回答
72 浏览

mongodb - 如何在 spring-data-mongodb 中编写 UpdateMany mongo 查询

如何使用 spring-data-mongodb 编写以下 mongo db 查询?

这是数据模型的样子:

我想将此迁移到以下架构

这是我尝试过的,但它获取了内存中的所有数据并且我得到了 OOMException。有没有更好的方法来编写这个查询,类似于updateMany我不需要在内存中获取数据的地方。

提前致谢!

0 投票
0 回答
341 浏览

java - FluxUsingWhen 在使用带有反应性存储库的 spring 数据时无法转换为 Iterable 错误

我配置了一个ReactiveSortingRepository来查看 spring 数据休息的反应能力,过去我主要用来PagingAndSortingRepository将资源公开为 REST 端点,所以想看看反应的东西是如何工作的。

实体/文件

AuditableDocument@Version具有所有资源的共同属性,例如@LastModifiedDate等。

然后是存储库

当我访问http://localhost:8080/posts浏览器时出现此错误

和堆栈跟踪

这是依赖项

0 投票
1 回答
43 浏览

mongodb - spring-data-mongo-db 库更新后聚合工作异常

今天我将 Spring Boot 从版本 2.2.2.RELEASE 更新到了 2.5.2。之后聚合开始表现不同。这是一个示例查询(使用 kotlin 语言):

对于 2.2.2.RELEASE 版本,此代码有效。但是在 2.5.2 版本中,API 要求sameUserparam 是一个列表(否则它会引发异常)。

我想避免修改我的查询或对象(因为我有太多的那些)。所以我想我的问题是:有没有办法让最新的 API 表现得像以前一样而无需降级?

0 投票
1 回答
64 浏览

flutter - 如何通过 Flux 将对象更改传达给 Sping MongoDB Reactive 中的 Websocket

请给一些关于以下内容的提示!

先决条件:

  • 副本集类型的 Mongo 集群
  • @EnableReactiveMongoRepositories已就位,所有存储库都从ReactiveMongoRepository
  • @EnableWebFluxSecurity就位,还有一个自定义过滤器用于 Firebase 身份验证
  • Websocket 连接是通过 SocketIO 类型的客户端(不是 SockJS 客户端)从 Flutter UI 建立的

我有以下流程(以下我用 混淆真实的类名SomeClass):

  • UI 中的 SocketIO 订阅是通过WebSocketHandler实现完成的——它基本上从 Mongo 中查询一个给定唯一 ID 的对象(预计只有一项)。处理程序方法的代码非常简单:

服务类中的代码也很简单:

  • 还有一个 REST 端点,我用 PUT 请求调用它来修改 Mongo DB 中的对象。REST 端点的代码也很简单:

问题是:

  • 有什么方法可以通过已经建立的 WebSocket 会话将 REST 调用中所做的更改传达给给定对象?

考虑和假设:

  • 我正在考虑更改流 - 但它与 SockJS 一起工作得更好sendToUser。说到 SocketIO - 在这种情况下,需要一个活动会话的注册表,这确实使使用反应式风格的利润变得悲惨
  • @Tailable,据我了解,有很大的限制 - 仅用于上限集合,这使得它无法使用。

伙计们,非常感谢任何建议和意见!非常感谢您!

0 投票
0 回答
131 浏览

spring-webflux - NestedClass 测试失败,因为 Spring-Data-Mongo-Reactive 正在关闭 MongoDb 连接(状态应该是:服务器会话池已打开)

1)问题描述:

  • 我正在使用 Spring-Data-Mongo-Reactive、Testcontainers 和 JUnit 05;
  • 我有一个带有简单测试和“嵌套测试类”的测试类(也有一个简单的测试);
  • 当 JUnit 测试 NestedClass 时,MongoDb 连接关闭,测试“Test's NestedClass”失败;

我的目标是:

  • 保持 Reactive-MongoDB-Connection 打开,以便测试“Nested-Test-Class”;

以下是上述情况的代码:

1.1) 代码:

当前工作状态:不工作;

当前行为:

  • Reactive-MongoDB 连接正在关闭,当测试“嵌套测试类”时,即使第一个测试正常测试。.

2)当前有问题的日志/错误:

java.lang.AssertionError:期望“expectNextCount(1)”失败(期望:count = 1;实际:counted = 0;信号:onError(org.springframework.data.mongodb.ClientSessionException:状态应该是:服务器会话池已打开; 嵌套异常是 java.lang.IllegalStateException: state should be: server session pool is open))

引起:java.lang.IllegalStateException:状态应该是:服务器会话池是打开的

3)问题:

  • 如何保持 Reactive-MongoDB-Connection 处于打开状态,以便同时测试“Nested-Test-Class”?

非常感谢您的帮助

0 投票
0 回答
164 浏览

spring-webflux - Spring WebFlux Reactive MongoDB - 如何组合两个更改流?

在我的应用程序中,我想组合 2 个更改流来侦听对某些过滤器对象的更改以及对实际有问题的集合的插入/删除(我将驻留在不同集合中的过滤器应用于该集合)

因此我有一个这样的近似代码:

问题是 - 第二个更改流不起作用。这我可以通过切换它们来判断——因为我切换了更高的concatWith作品,而下面的作品则没有。

问题

你有遇到过这样的行为吗?

有什么更好的方法可以对 2+ 个集合进行一些复杂的侦听以将这些更改传递给 UI?

更新

这是我拥有的全部方法 - 一个 changeStream 工作,另一个不工作: