当前位置: 首页 > news >正文

mongo的include方法踩坑

前言

又是不认识自己代码的一天

问题

Query query = new Query();
if(StringUtils.isNotNull(reqVO.getFieldLimitList()) && reqVO.getFieldLimitList().size() > 0){for(String filedName : reqVO.getFieldLimitList()){query.fields().include(filedName);}
}

看到 query.fields().include(filedName); 这行代码,

以为效果是: 如果数据没有这个字段就把这条数据筛掉,加上自己当时写的注释有歧义,所以误解了。

实际效果是: include只是对返回的结果集进行了处理,使得只返回结果集的某些字段,并不会减少结果。

如果需要查询时,不返回某字段为空的数据,正确做法是:

Query query = new Query();
if(StringUtils.isNotNull(reqVO.getFieldLimitList()) && reqVO.getFieldLimitList().size() > 0){query.addCriteria(Criteria.where(MongoConsts.fieldName).exists(true));
}
http://www.lryc.cn/news/132276.html

相关文章:

  • 阿里云无影云电脑/云桌面收费价格表_使用申请方法
  • jvm内存溢出排查(使用idea自带的内存泄漏分析工具)
  • JS内存泄漏
  • 线程和进程同步互斥你真的掌握了吗?(同步互斥机制保姆级讲解与应用)
  • Android 9.0 Vold挂载流程解析(上)
  • 界面组件Telerik UI for WinForms R2 2023——拥有VS2022暗黑主题
  • vue+elementui 实现文本超出长度显示省略号,鼠标移上悬浮展示全部内容
  • 【STM32RT-Thread零基础入门】 5. 线程创建应用(线程创建、删除、初始化、脱离、启动、睡眠)
  • 计算机竞赛 python+深度学习+opencv实现植物识别算法系统
  • 深度探索ChatGPT:如何进行专业提问以获取精确答案
  • 1.vue3+vite开发中axios使用及跨域问题解决
  • 【LangChain】P1 LangChain 应用程序的核心构建模块 LLMChain 以及其三大部分
  • 关于查看处理端口号和进程[linux]
  • C 语言的 strcat() 函数和 strncat() 函数
  • C++ string 的用法
  • MyBatis-Flex学习记录1---请各位大神指教
  • 二分查找旋转数组
  • 关于3D位姿旋转
  • 解锁项目成功的关键:项目经理的结构化思维之道
  • 力扣974被K整除的子数组
  • 简单认识Docker数据管理
  • UDP数据报结构分析(面试重点)
  • 【Java 动态数据统计图】动态数据统计思路案例(动态,排序,数组)二(113)
  • C++进阶 类型转换
  • Idea中隐藏指定文件或指定类型文件
  • 第2步---MySQL卸载和图形化工具展示
  • 原型和原型链
  • 解决ios隔空播放音频到macos没有声音的问题
  • LTPP在线开发平台【使用教程】
  • 0818 新增码表 git拉取代码