反应式 mongo 模板:mongo 4.4.0 上的“''cursor' 选项是必需的”
Posted
技术标签:
【中文标题】反应式 mongo 模板:mongo 4.4.0 上的“\'\'cursor\' 选项是必需的”【英文标题】:Reactive mongo template: "'The 'cursor' option is required" on mongo 4.4.0反应式 mongo 模板:mongo 4.4.0 上的“''cursor' 选项是必需的” 【发布时间】:2022-01-09 22:53:58 【问题描述】:正如标题所示,我收到错误消息,我应该使用以下代码使用光标选项:
public Mono<Test> someMethod(String param)
return reactiveMongoTemplate.aggregate(Aggregation.newAggregation(X.class,
Aggregation.match(Criteria.where("test").is(param)),
Aggregation.group("field")
.first("value").as("value")
.first("test").as("test"),
Aggregation.group()
.first("test").as("test")
.push(new BasicDBObject()
.append("k", "$_id")
.append("v", "$value")
)
.as("array"),
Aggregation.replaceRoot(
MergeObjects.merge(
new BasicDBObject().append("_id", "$test"),
ArrayToObject.arrayValueOfToObject("array")
)
),
Aggregation.project(getFields()),
Aggregation.merge()
.into(MergeOperationTarget.collection("test"))
.on("id")
.build()
).withOptions(AggregationOptions.builder().allowDiskUse(true).build()), Test.class)
.single();
我们最近从 mongo 版本 3.5.5 升级到 4.4.0 以支持合并操作(自 4.2.0 起支持),现在我们收到此错误。请记住,这是响应式 mongo 模板,来自 org.springframework.data.mongodb.core
(当前版本为 3.2.2)。
我确实尝试在聚合选项中添加 cursorBatchSize
和 cursor
没有任何结果,或者我在那里做错了什么?我只是想知道它是否已经可用于响应式 mongo 模板。这也是来自 fladdoodle 库的嵌入式 mongo 实例。
完全错误:InvalidDataAccessApiUsageException "The 'cursor' option is required, except for aggregation explain", "code": 9, "codeName": "FailedToParse"
【问题讨论】:
【参考方案1】:所以我们刚刚从嵌入式转到了 dockerized mongo 实例,这解决了很多问题,例如机器操作系统
【讨论】:
以上是关于反应式 mongo 模板:mongo 4.4.0 上的“''cursor' 选项是必需的”的主要内容,如果未能解决你的问题,请参考以下文章
@@ DataJpaTest无法排除反应性mongo的存储库