gpt4 book ai didi

spring - 如何在Spring Boot中的存储库中的@Aggregation注释中添加 "allowDiskUse"?

转载 作者:行者123 更新时间:2023-12-02 18:15:29 24 4
gpt4 key购买 nike

我在 MyRepository.kt 文件中编写了一个聚合,该文件是从后端的 MongoDataRetriever.kt 文件调用的。

MyRepository.kt 文件:

import org.springframework.data.mongodb.repository.Aggregation
import org.springframework.data.mongodb.repository.MongoRepository

@Aggregation(pipeline = [
"{ \$match: { 'objName' : { \$exists: true } } }",
"{ \$sort: { 'addedDate': -1 } }"
])
fun getLatestObjectsWithLatestData(): List<MyDocument>

MongoDataRetriever.kt文件:

  override fun getLatestObjects(): List<MyObj> {
return myRepository.getLatestObjectsWithLatestData().map { it.toMyObj() }
}

上述聚合失败并出现错误:

消息:“命令失败,错误 16819 (Location16819):“排序超出了 104857600 字节的内存限制,但未选择加入外部排序。正在中止操作。传递 allowedDiskUse:true 以选择加入。”服务中...

所以,似乎添加 allowDiskUse = true 或类似的内容是可能的修复方法,但如何在上面的注释中添加它?

最佳答案

您可以在方法中添加 @Meta(allowDiskUse = true) 注释。

@Aggregation(pipeline = [
"{ \$match: { 'objName' : { \$exists: true } } }",
"{ \$sort: { 'addedDate': -1 } }"
])
@Meta(allowDiskUse = true)
fun getLatestObjectsWithLatestData(): List<MyDocument>

关于spring - 如何在Spring Boot中的存储库中的@Aggregation注释中添加 "allowDiskUse"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71648734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com