zoukankan      html  css  js  c++  java
  • 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})
  • 相关阅读:
    Hadoop 2.5.1集群安装配置
    Hadoop 2.5.1编译
    CloudStack安装
    Swift安装
    频率分布折线图与总体密度曲线
    频率直方图(hist)
    分位数(quantile)
    茎叶图(stem)
    盒图(boxplot)
    R语言学习
  • 原文地址:https://www.cnblogs.com/lyon91/p/9565718.html
Copyright © 2011-2022 走看看