8月31 mongodb查询指定字段 | 查询内存溢出
一、mongodb查询指定字段
原先的实体
@Getter @Setter @ToString @Document(collection = "salon_information") public class SalonInformation extends ParentEntity{ /** 终端代码*/ private String tmnCode; /** 中文名称*/ private String nameCh; /** 英文名称*/ private String nameEn; /** 终端简称*/ private String shortName; 很多字段
但是前台查询出来数据量太大,需要指定查询某些字段
直接新建实体,映射同一个docment即可
@Getter @Setter @ToString @Document(collection = "salon_information") public class SalonInformationShowVo { private String id; /** 中文名称*/ private String nameCh; /** 终端地址*/ private String address; }
只有是三个字段,正常些reposetory ,查询即可
二、查询内存溢出
db.salon_information.find().sort({create_time:-1})
倒叙查询,但是报错
OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index
建议1:修改内存大小
2 设置索引
db.yourCollection.createIndex({<field>:<1 or -1>}) db.yourCollection.getIndexes() //查看当前collection的索引
其中1
表示升序排列,-1
表示降序排列。索引创建之后即时生效,不需要重启数据库和服务器程序,也不需要对原来的数据库查询语句进行修改。
创建索引的话也有不好的地方,会导致数据写入变慢,同时Mongodb
数据本身占用的存储空间也会变多。
不过从查询性能和服务器资源消耗这两方面来看,通过创建索引来解决这个问题还是最佳的方案!
db.salon_information.createIndex({create_time:1})