【问题标题】:Reactive tailable cursor is closed when a mongodb collection is empty当 mongodb 集合为空时,响应式可尾游标关闭
【发布时间】:2019-06-11 08:53:37
【问题描述】:

我正在开发一个带有 webflux 的流,该流来自一个带有 spring boot 的 mongodb 集合和带有可尾游标的 spring data mongodb。

当集合有 1 个或更多文档时,流正在工作,因为您可以获得光标。问题是我想用空集合打开流,因为我想流化集合中的每个文档。

我一直在阅读文档,它应该是正确的:

https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#tailable-cursors

Tailable 游标可能会失效或无效,如果查询返回不匹配或游标返回集合“末尾”的文档,然后应用程序会删除该文档

我正在评估使用 Spring Boot 和 Flux 实现此目标的最佳方法(从空集合中打开流),但我想知道是否有一些想法或解决方法。

谢谢。

【问题讨论】:

    标签: mongodb spring-boot spring-data flux reactive


    【解决方案1】:

    确实,即使是在空的上限集合上“查找所有”也被视为不匹配,并且光标已失效。 reactiveMongoOperations.tail(new Query(), Event.class) 返回一个死游标,带注释的存储库风格也是如此。 Spring docs 只是复制 mongo docs,其中状态

    如果出现以下任一情况,可尾游标可能会失效或无效: 查询不返回匹配项。 光标返回集合“末尾”的文档,然后应用程序 > 删除该文档。

    唯一的解决方法似乎是在订阅之前插入一个初始虚拟条目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 2020-08-10
      • 2014-01-09
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多