我试着用Springboot2做一些测试,特别是用反应堆(Flux/Mono)。我正面临着一个问题。
当我尝试使用存储库方法时,一定要检索我的所有人员,我使用该方法:@Tailable ();
但在我的例子中,我收到了那个错误
Caused by: com.mongodb.MongoQueryException: Query failed with error code 2 and error message 'error processing query: ns=test.person batchSize=2Tree: $andSort: {}Proj: {} tailable cursor requested on non capped collection' on server localhost:27017当我将我的收藏设置为“上限”时,它就能工作了。
db.runCommand( { convertToCapped: 'person', size: 8192 } )但出于很多原因,我不会使用有上限的收藏
我不知道如何解决这个问题,也许我的代码或选择是错误的。
有人能解释一下如何在我的数据库中只检索新元素吗?
问候
发布于 2018-06-01 18:22:50
这是设计上的,而不是Spring数据的限制。MongoDB只支持上限集合上的可跟踪游标(请参阅mongodb参考文档)。
正如链接文档中所解释的,您可以选择轮询新元素的索引集合(我不知道Spring数据中有任何反应性集成)。
发布于 2021-05-20 20:12:48
如果您正在使用ReactiveMongoOperations,请不要忘记订阅以下方法:mongoOperations.createCollection(ItemCapped.class, CollectionOptions.just(Collation.simple()).capped().size(50000).maxDocuments(20)).subscribe();
使用弹簧2.4.5
https://stackoverflow.com/questions/50176125
复制相似问题