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

MongoDB相关使用问题

1.【报错】sort operation used more than the maximum 33554432 bytes of RAM. Add an index

MongoDB 排序超过内存限制,限制最大为100M。
解决方式:将内存排序改为磁盘排序

正常用法:数据量大了再排序会报错

@Autowired
protected MongoOperations mongoTemplate;public List<Student> getStudent(Long cid, Integer pageNo, Integer pageSize){Sort sort = new Sort(new Sort.Order(Sort.Direction.DESC,"createTime"));Query query = Query.query(Criteria.where("cid").is(cid)).with(sort);if (pageNo != null && pageSize != null) {query.with(PageRequest.of(pageNo - 1, pageSize));}List<Student> students = mongoTemplate.find(query, Student.class).stream().limit(100).collect(Collectors.toList());
}

优化方法:采用磁盘查询

import com.iqiyi.student.entity.mongo.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.*;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;import java.util.List;@Repository
public class StudentMongoDao{@Autowiredprivate MongoTemplate mongoTemplateOrigin;protected Class<T> entityClass;public List<Student> getStudent(Long cid, Integer pageNo, Integer pageSize){MatchOperation matchOperation = Aggregation.match(Criteria.where("cid").is(cid));SortOperation sortOperation = Aggregation.sort(Sort.by(Sort.Direction.DESC, "createTime"));Aggregation aggregation = Aggregation.newAggregation(matchOperation, sortOperation);// 如果需要分页if (pageNo != null && pageSize != null) {Pageable pageable = PageRequest.of(pageNo - 1, pageSize);SkipOperation skipOperation = Aggregation.skip((long) pageable.getPageNumber() * pageable.getPageSize());LimitOperation limitOperation = Aggregation.limit(pageable.getPageSize());aggregation = Aggregation.newAggregation(matchOperation, sortOperation, skipOperation, limitOperation);}// 查询Aggregation finalAggregation = aggregation.withOptions(Aggregation.newAggregationOptions().allowDiskUse(true).build());List<Student> students= mongoTemplateOrigin.aggregate(finalAggregation, entityClass.getAnnotation(Document.class).collection(), entityClass).getMappedResults();return students;}
}

2.【报错】Map key xxx.xxx contains dots but no replacement was configured

原因:mongoDb有自己的内容解析方式,不支持内容中出现"."(英文点号)。
解决:将该符号替换掉即可

update 2025.1.3

相关文章:

MongoDB相关使用问题

1.【报错】sort operation used more than the maximum 33554432 bytes of RAM. Add an index MongoDB 排序超过内存限制&#xff0c;限制最大为100M。 解决方式&#xff1a;将内存排序改为磁盘排序 正常用法&#xff1a;数据量大了再排序会报错 Autowired protected MongoO…...

DevSecOps自动化在安全关键型软件开发中的实践、Helix QAC Klocwork等SAST工具应用

DevSecOps自动化对于安全关键型软件开发至关重要。 那么&#xff0c;什么是DevSecOps自动化&#xff1f;具有哪些优势&#xff1f;为何助力安全关键型软件开发&#xff1f;让我们一起来深入了解~ 什么是DevSecOps自动化&#xff1f; DevSecOps自动化是指在软件开发生命周期的各…...

常见的显示器分辨率及其对应的像素数量

显示器的像素数量通常由其分辨率决定&#xff0c;分辨率表示为水平像素数乘以垂直像素数。 720P&#xff08;1280720&#xff09;&#xff1a; 像素数量&#xff1a;约92.16万特点&#xff1a;这是高清标准的一个分辨率&#xff0c;通常用于手机、平板电脑或小型显示器。900P&…...

TDengine + MQTT :车联网时序数据库如何高效接入

现代新能源汽车&#xff0c;作为一种内部系统极为复杂的交通工具&#xff0c;配备了大量传感器、导航设备、应用软件&#xff0c;这些传感器产生的数据都需要上报到车联网平台当中。对于这些车辆的状态数据&#xff08;如车速、发动机转速等&#xff09;、位置数据&#xff08;…...

maven的中国镜像有哪些

根据您的请求&#xff0c;以下是一些可用的 Maven 中国镜像&#xff1a; 阿里云 官网&#xff1a;阿里云 Maven 镜像配置&#xff1a;<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>…...

ModelScope ms-swift:轻量级模型微调框架

ModelScope ms-swift&#xff1a;轻量级模型微调框架 介绍支持的模型支持的技术使用方法为什么选择ms-swift&#xff1f;结论 介绍 ModelScope ms-swift是ModelScope社区提供的一个官方框架&#xff0c;用于大型语言模型&#xff08;LLMs&#xff09;和多模态大型模型&#xf…...

深度解析与实践:HTTP 协议

一、引言 HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是 Web 应用程序、API、微服务以及几乎所有互联网通信的核心协议。虽然它是我们日常使用的基础技术&#xff0c;但要深刻理解其高效使用、优化以及如何避免性能瓶颈&#xff0c;我…...

Zookeeper是如何解决脑裂问题的?

大家好&#xff0c;我是锋哥。今天分享关于【Zookeeper是如何解决脑裂问题的?】面试题。希望对大家有帮助&#xff1b; Zookeeper是如何解决脑裂问题的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Zookeeper 通过一系列的机制来防止和解决脑裂&#xff08;sp…...

《Opencv》基础操作详解(5)

接上篇&#xff1a;《Opencv》基础操作详解&#xff08;4&#xff09;-CSDN博客 目录 接上篇&#xff1a;《Opencv》基础操作详解&#xff08;4&#xff09;-CSDN博客 25、轮廓近似 简介 接口用法 参数说明 返回值 代码示例 结果展示 26、轮廓最小外接圆 简介 接口用…...

AI大模型-提示工程学习笔记2

卷首语&#xff1a;我所知的是我自己非常无知&#xff0c;所以我要不断学习。 写给AI入行比较晚的小白们&#xff08;比如我自己&#xff09;看的&#xff0c;大神可以直接路过无视了。 提示词要素 提示词由以下几个要素组成&#xff1a; 指令&#xff1a;告诉模型需要完成什…...

AWS ELB基础知识

1.负载均衡器的类型 需要了解三种类型的 ELB&#xff1a; Application Load Balancer &#xff08;ALB&#xff09; **&#xff1a; 在 HTTP/HTTPS 层&#xff08;OSI 模型的第 7 层&#xff09;运行。非常适合路由 HTTP/HTTPS 流量。支持高级路由功能&#xff0c;例如基于 U…...

我用Ai学Android Jetpack Compose之Text

这篇开始学习各种UI元素&#xff0c;答案来自 通义千问&#xff0c;通义千问没法生成图片&#xff0c;图片是我补充的。 下述代码只要复制到第一个工程&#xff0c;做一些import操作&#xff0c;一般import androidx.compose包里的东西&#xff0c;即可看到预览效果。完整工程代…...

Robot---奇思妙想轮足机器人

1 背景 传统机器人有足式、轮式、履带式三种移动方式&#xff0c;每种移动方式都有各自的优缺点。轮式机器人依靠车轮在地面上移动&#xff0c;能源利用率高、移动速度快&#xff0c;但是仅以轮子与地面接触&#xff0c;缺乏越障能力和对复杂地形的适应能力&#xff0c;尤其面对…...

springcloud 介绍

Spring Cloud是一个基于Spring Boot的微服务架构解决方案集合&#xff0c;它提供了一套完整的工具集&#xff0c;用于快速构建分布式系统。在Spring Cloud的架构中&#xff0c;服务被拆分为一系列小型、自治的微服务&#xff0c;每个服务运行在其独立的进程中&#xff0c;并通过…...

【STM32】I2C为什么要开漏输出和上拉电阻

为什么需要使用开漏输出 防止短路&#xff1a;假设使用推挽结构&#xff0c;多个设备挂在同一总线上&#xff0c;当存在某一设备将某一信号驱动为高电平&#xff0c;而其他设备驱动为低电平&#xff0c;会导致短路&#xff0c;导致器件损坏或降低寿命。对于开漏结构&#xff0…...

【从零开始入门unity游戏开发之——C#篇44】C#补充知识——var隐式类型、初始化器、匿名类型

文章目录 一、var隐式类型1、var 的基本用法2、注意3、总结 二、初始化器1、类定义2、对象初始化器3、集合初始化3.1 数组初始化3.2 List<T> 初始化3.3 Dictionary<TKey, TValue> 初始化 三、匿名类型1、示例代码2、匿名类型的限制&#xff1a; 专栏推荐完结 一、v…...

Spring Boot 中 TypeExcludeFilter 的作用及使用示例

在Spring Boot应用程序中&#xff0c;TypeExcludeFilter 是一个用于过滤特定类型的组件&#xff0c;使之不被Spring容器自动扫描和注册为bean的工具。这在你想要排除某些类或类型&#xff08;如配置类、组件等&#xff09;而不希望它们参与Spring的自动装配时非常有用。 作用 …...

解锁kafka组件安全性解决方案:打造全方位安全防线

文章目录 前言安全漏洞修复权限管理身份验证数据传输数据存储 前言 Kafka组件的安全性解决方案旨在保护Kafka集群免受未经授权访问、数据泄露、知识产权问题和竞争法问题的侵害。提高开源中间件的安全性和稳定性&#xff0c;包括安全漏洞修复、权限管理、身份验证等方面的内容…...

【C++数据结构——图】最小生成树(头歌实践教学平台习题) 【合集】

目录&#x1f60b; 任务描述 相关知识 带权无向图 建立邻接矩阵 Prim算法 1. 算法基本概念 2. 算法背景与目标 3. 算法具体步骤 4. 算法结束条件与结果 测试说明 通关代码 测试结果 任务描述 本关任务&#xff1a;编写一个程序求图的最小生成树。 相关知识 为了完成…...

Java(1)入门基础

1. Java简介 1.1 什么是Java Java 是一款由Sun Microsystems公司&#xff08;现为甲骨文公司Oracle Corporation的一部分&#xff09;的James Gosling及其团队在1995年发布的高级编程语言。同时&#xff0c;Java 是一种面向对象的语言&#xff0c;这意味着它允许开发者通过创…...

Docker部署Ollama模型烫

前言 Kubernetes 本身并不复杂&#xff0c;是我们把它搞复杂的。无论是刻意为之还是那种虽然出于好意却将优雅的原语堆砌成 鲁布戈德堡机械 的狂热。平台最初提供的 ReplicaSets、Services、ConfigMaps&#xff0c;这些基础组件简单直接&#xff0c;甚至显得有些枯燥。但后来我…...

Pixel Script Temple 环境配置详解:Anaconda虚拟环境管理最佳实践

Pixel Script Temple 环境配置详解&#xff1a;Anaconda虚拟环境管理最佳实践 1. 为什么需要虚拟环境&#xff1f; 在开始之前&#xff0c;我们先聊聊为什么需要虚拟环境。想象一下&#xff0c;你正在开发一个Python项目&#xff0c;突然发现新安装的包和之前的项目冲突了&am…...

LingBot-Depth进阶使用:结合API实现批量图片深度估计自动化

LingBot-Depth进阶使用&#xff1a;结合API实现批量图片深度估计自动化 1. 引言&#xff1a;为什么需要批量深度估计&#xff1f; 在日常的计算机视觉项目中&#xff0c;我们经常需要处理大量图片的深度估计任务。无论是构建3D场景数据集、开发机器人导航系统&#xff0c;还是…...

Express路由与Sequelize的完美结合:构建企业级RESTful API的最佳实践

Express路由与Sequelize的完美结合&#xff1a;构建企业级RESTful API的最佳实践 【免费下载链接】express-example A proposal for the usage of Sequelize within an Express.JS application. 项目地址: https://gitcode.com/gh_mirrors/ex/express-example Express路…...

STM32F407VET6+TB6612驱动4路直流电机:从硬件接线到PID调参全流程实战

STM32F407VET6TB6612驱动4路直流电机&#xff1a;从硬件接线到PID调参全流程实战 1. 硬件连接与电路设计 1.1 核心器件选型与特性 在开始硬件连接前&#xff0c;我们需要充分了解核心器件的特性&#xff1a;STM32F407VET6&#xff1a; Cortex-M4内核&#xff0c;带FPU&#xff…...

OpenMatrix 架构解析:基于 Harness 思想的 AI 任务编排系统

引言&#xff1a;AI 编码的信任危机 AI 编码工具已经非常强大&#xff0c;但用户仍然不敢完全信任。为什么&#xff1f; 第一层&#xff1a;AI 补全代码&#xff08;Copilot&#xff09;→ 解决「写」的问题 第二层&#xff1a;AI 对话编程&#xff08;Claude Code&#xff0…...

为什么92%的AI初创公司正在裸奔式发布大模型?——版权保护缺失导致融资受阻、合作终止的真实案例集(含3份被驳回的软著申报复盘)

第一章&#xff1a;大模型工程化中的模型版权保护 2026奇点智能技术大会(https://ml-summit.org) 大模型工程化已从算法验证阶段迈入规模化部署与商业落地的关键期&#xff0c;而模型版权保护正成为企业合规运营、技术资产确权与跨组织协作不可回避的核心议题。未经保护的模型…...

嵌入式滤波器频率响应实时绘制库

1. FrequencyResponseDrawer 库概述FrequencyResponseDrawer 是一个面向嵌入式平台的轻量级 C 类库&#xff0c;专为在资源受限的微控制器上实时绘制数字滤波器频率响应曲线而设计。其核心目标并非替代 MATLAB 或 Python 的科学计算能力&#xff0c;而是解决嵌入式系统中一个典…...

# 016、AutoSAR CP操作系统(OS)配置与任务调度:那个让我加班到凌晨三点的调度死锁

上周在联调ECU唤醒流程时,遇到一个诡异现象:系统唤醒后运行几分钟就卡死,仿真器显示所有任务都停在WaitEvent状态。抓了三天Trace才发现,是OS任务优先级配反了——高优先级任务等低优先级任务释放资源,低优先级任务又被中等优先级任务抢占,经典的优先级反转没处理好。今天…...

STM32duino VL53L0X驱动深度解析:ToF传感器嵌入式实践指南

1. STM32duino VL53L0X 库深度解析&#xff1a;面向嵌入式工程师的ToF传感器驱动实践指南VL53L0X 是意法半导体&#xff08;STMicroelectronics&#xff09;推出的第二代飞行时间&#xff08;Time-of-Flight, ToF&#xff09;激光测距传感器&#xff0c;采用940nm不可见红外VCS…...