Lig*_*ami 3 spring aggregation mongodb mongorepository spring-boot
我在一个文件中写入了一个聚合,该聚合是从后端的文件MyRepository.kt调用的。MongoDataRetriever.kt
MyRepository.kt文件:
import org.springframework.data.mongodb.repository.Aggregation\nimport org.springframework.data.mongodb.repository.MongoRepository\n\n @Aggregation(pipeline = [\n "{ \\$match: { 'objName' : { \\$exists: true } } }",\n "{ \\$sort: { 'addedDate': -1 } }"\n ])\n fun getLatestObjectsWithLatestData(): List<MyDocument>\nRun Code Online (Sandbox Code Playgroud)\n和MongoDataRetriever.kt文件:
override fun getLatestObjects(): List<MyObj> {\n return myRepository.getLatestObjectsWithLatestData().map { it.toMyObj() }\n }\nRun Code Online (Sandbox Code Playgroud)\n上述aggregation失败并出现错误:
message:\xc2\xa0"Command failed with error 16819 (Location16819): 'Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in.' on serv...
所以,似乎添加allowDiskUse = true或类似的东西是可能的解决方案,但如何在上面的注释中添加它?
小智 6
您可以将 @Meta(allowDiskUse = true) 注释添加到您的方法中。
@Aggregation(pipeline = [
"{ \$match: { 'objName' : { \$exists: true } } }",
"{ \$sort: { 'addedDate': -1 } }"
])
@Meta(allowDiskUse = true)
fun getLatestObjectsWithLatestData(): List<MyDocument>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1139 次 |
| 最近记录: |