记录;allowDiskUse声明方式

Aggregation aggregation = Aggregation.newAggregation(aggregationList).withOptions(new AggregationOptions(true, false, null));AggregationResults<O> aggregationResults = MultipleMongoConfig.getMongoTemplate().aggregate(aggregation, inputType, outputType);

之前没有用过mongoDB,临时接到任务,需要将线上使用mongoDB的数据全部迁移到mysql,数据量比较大可能上亿,所以在写迁移接口的时候遇到形形色色的问题

在使用磁盘排序,使用limit时,翻页总是查询不到想要的下一页距离,解析出来的mongo 语句为

异常的语句

db.getCollection("promotion_present_log").aggregate([{ "$match": { "ployId": { "$in":["12", "434", "345", "4567"]} } },
{"$limit":20},
{"$match":{"_id":{"$gt" : {"$oid" : "5667"}}}},
{ "$sort": { "_id": 1 } }`
])

Java层代码

!!!正是因为这里,match没有连在一起,导致查不出数据来

正确的mongo语句

db.getCollection("promotion_present_log").aggregate([
{ "$match": { "ployId": { "$in": ["12", "434", "345", "4567"]` } } },{"$match":{"_id":{"$gt" : {"$oid" : "5ef98f9cc3abbe0c5aab6cf0"}}}},
{"$limit":20},
{ "$sort": { "_id": 1 } }
])

match条件需要在一起!!
正确的java代码,match条件需要在一起,且顺序需要 sort > skip > limit

总结:和磁盘分页无关,写代码写法有关,总之一句话,还是自己太菜啦!!

SpringBoot 集成 MongoDB 磁盘分页查询导致的坑,allowDiskUse 基本配置相关推荐

  1. springboot集成mongoDB高级聚合查询,关联查询

    目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符? 注意注意注意? 数学运算符 mongoDB案例 ? ? ? ? 插入测试数据 ?mongodb的阶段操作符号 ...

  2. springboot集成mongoDB高级聚合查询,关联查询,lookup.let多条件关联查询。

    目录 mongoDB的常用操作符 mongoDB的聚合管道符号 比较操作符 逻辑运算符 注意坑 数学运算符 mongoDB案例 插入测试数据 mongodb的阶段操作符号 $match: $count ...

  3. SpringBoot集成MongoDB

    SpringBoot集成MongoDB Pom依赖 <dependency><groupId>org.springframework.boot</groupId>& ...

  4. Windows下安装Mongodb SpringBoot集成MongoDB和Redis多数据源

    全文内容: Mongodb安装 说明:Mongodb和redis是开发中常用的中间件,Redis的安装使用比较简单就不写了,只说本地也就是Windows安装Mongodb. SpringBoot集成M ...

  5. springboot集成mongodb 连接池 多数据库源,源码demo

    上一篇介绍了 springboot集成mongodb 多数据库源切换 源码demo 开发环境: windows 7 idea windows64 mongodb 如果没安装运行 点这里 navicat ...

  6. springboot集成mongoDB 异常认证

    springboot集成mongoDB 异常认证 参考文章: (1)springboot集成mongoDB 异常认证 (2)https://www.cnblogs.com/mh-study/p/980 ...

  7. spring boot 集成 mongodb 通过id查询问题

    spring boot 集成 mongodb 通过id查询问题 java 连接 mongodb 查询时通过id 查询不到数据,但其他字段是可以的,现在请各位大佬看看会是什么原因 通过id为参数查询 具 ...

  8. SpringBoot集成MyBatis的分页插件PageHelper(回头草)

    俗话说:好?不吃回头草,但是在这里我建议不管你是好马还是不好马,都来吃吃,带你复习一下分页插件PageHelper. 昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心 ...

  9. C# 驱动的mongodb的分页查询简单示例

    /// <summary>/// mongodb分页查询/// </summary>/// <typeparam name="T"></t ...

最新文章

  1. fieldset 使用小案例
  2. bzoj 1412 [ZJOI2009]狼和羊的故事 最小割建图
  3. redis集群断电数据怎么恢复_如何做到 10T 集群数据安全备份、1GB/s 快速恢复?...
  4. 多边多面形成体_Nature Comm | 中科院分子植物卓越中心巫永睿团队揭示类胡萝卜素影响玉米硬质胚乳形成的新机制...
  5. 手动处理MNIST手写数据集的逻辑斯蒂回归算法实践
  6. html语言怎么那么难用,js为什么那么难
  7. sqlserver执行生成rpt文件怎么回事_使用生成脚本功能和数据导出工具实现SQL Server2014数据降级2008R2版本...
  8. 巨头瓜分锤子老将:创业的黄金时代已远去?
  9. 词干提取算法Porter Stemming Algorithm解读
  10. oracle清除temp表空间,Temp表空间占用长时间不释放,是谁惹的祸
  11. oracle cube语法,oracle Rollup 和 Cube用法
  12. python爬虫之糗事百科
  13. 活法 - 第五章 宇宙潮涌 因果之法
  14. c语言实现7段数码管显示,七段数码管显示实验.doc
  15. C#与Json实现字符串和对象的互相转换
  16. Python plt画图设置
  17. v3S编译大全(uboot 主线linux buildroot)
  18. self-attention笔记
  19. cannot create map for .ILK file; linking nonincrementally
  20. 超详细的simulink代码生成

热门文章

  1. 绵阳计算机维修价格,绵阳台式电脑维修
  2. TLP(Transmission Line Pulse)
  3. 推荐几个面向 Web 开发者的杀手级网站
  4. maya 杀毒软件官方下载地址及教程
  5. ACCESS数据库防下载技术
  6. 加密狗圣天诺LDK V7.5特性
  7. TLE两行数与轨道六根数转换
  8. 排序与分页Pagination
  9. socket:10038错误
  10. 【C++入门】烦人的引用