动画网站源码,建设酒店网站ppt模板,台州网站注册 公司,jsp制作网站1.【报错】sort operation used more than the maximum 33554432 bytes of RAM. Add an index
MongoDB 排序超过内存限制#xff0c;限制最大为100M。 解决方式#xff1a;将内存排序改为磁盘排序
正常用法#xff1a;数据量大了再排序会报错
Autowired
protected MongoO…1.【报错】sort operation used more than the maximum 33554432 bytes of RAM. Add an index
MongoDB 排序超过内存限制限制最大为100M。 解决方式将内存排序改为磁盘排序
正常用法数据量大了再排序会报错
Autowired
protected MongoOperations mongoTemplate;public ListStudent 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));}ListStudent 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 ClassT entityClass;public ListStudent 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());ListStudent 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