zoukankan      html  css  js  c++  java
  • MongoDB学习笔记

    MongoDB连接:

    public class MongoDBOperate {
    
        private static final Logger logger = LogUtils.getLogger();
        private static DruidDataSource dataSource;
        public static MongoClient client = null;
    
        public  static String Ip = null;
        public  static int Port = 0;
        public  static String DatabaseName =null;
        public  static String UserName =null;
        public  static String Pwd =null;
        static {
            Properties dbProperties = new Properties();
            for (String name : PropertiesReader.getPropertyNames()) {
                if (name != null) {
                    if (name.equals("md_password")) {
                        dbProperties.put(name.replace("md_", ""), PropertiesReader.getProperty(name));
                        Pwd = PropertiesReader.getProperty(name);
                    }
                    if (name.equals("md_userName")) {
                        dbProperties.put(name.replace("md_", ""), PropertiesReader.getProperty(name));
                        UserName = PropertiesReader.getProperty(name);
                    }
                    if (name.equals("md_databaseName")) {
                        dbProperties.put(name.replace("md_", ""), PropertiesReader.getProperty(name));
                        DatabaseName = PropertiesReader.getProperty(name);
                    }
                    if (name.equals("md_port")) {
                        dbProperties.put(name.replace("md_", ""), PropertiesReader.getProperty(name));
                        Port = Integer.parseInt(PropertiesReader.getProperty(name));
                    }
                    if (name.equals("md_host")) {
                        dbProperties.put(name.replace("md_", ""), PropertiesReader.getProperty(name));
                        Ip = PropertiesReader.getProperty(name);
                    }
                }
            }
    
        /**
         * 获取连接
         * @return
         */
        public MongoClient getCon(){
            if(client==null){
                client = new MongoClient(Ip,Port, DatabaseName,UserName,Pwd);
            }
            return client;
        }
    
    
    }

    MongoDB操作:

    public class MongoDbOperate {
    
        /**
         * 查询前一天所有上传数据
         *
         * @return
         */
        public static List<CpyGateway> queryAll(Long stime, Long etime) {
    
            //获取连接
            MongoDBOperate mongoDBOperate = new MongoDBOperate();
            MongoClient client = mongoDBOperate.getCon();
    
            List<CpyGateway> list = new ArrayList<>();
    
            String companycode = null;
            String waycode = null;
    
            AggregateIterable<Document> groupResult = client.getCollection("data_Collection_Log").aggregate(Arrays.asList(
    
                    // match中写查询条件
                    Aggregates.match(
                            Filters.and(
                                    Filters.lte("c_time", etime),
                                    Filters.gte("c_time", stime)
                            )
                    ),
                    Aggregates.group("$gatewayId",
                            // Accumulators.sum("data","")
                            Accumulators.sum("_id", "$sum:1"),
                            Accumulators.addToSet("gatewayId", "$gatewayId")
                    )
    
            ));
            for (Document document : groupResult) {
    
                com.alibaba.fastjson.JSONObject jo = JSON.parseObject(document.toJson());
    
                com.alibaba.fastjson.JSONArray gatewayArray = JSON.parseArray(jo.getString("gatewayId"));
                for (int i = 0; i < gatewayArray.size(); i++) {
                    CpyGateway cg = new CpyGateway();
                    waycode = gatewayArray.get(i).toString();
    
                    companycode = waycode.substring(0, 8);
                    cg.setCompanycode(companycode);
                    cg.setWaycode(waycode);
                    list.add(cg);
                }
    
            }
    
            return list;
        }
    
    }
    

      

     AggregateIterable<Document> groupResult = collection.aggregate(Arrays.asList(
                    // match中写查询条件
                    Aggregates.match(
                            Filters.and(
                                    Filters.lte("date", 1532679880386L),
                                    Filters.gte("date", 1532677122452L))
                    ),
                    // sort写排序条件,value为1是正序,-1为倒序,append用来控制多列排序
                    Aggregates.sort(new Document("date", -1).append("name", 1)),
                    // group中写聚合操作,id为聚合键,可写MongoDB表达式;
                    // 后续的参数为分组后的列,可使用Accumulators类中的静态方法进一步取第一条/最后一条、最大/最小值、求和、求平均值等操作
                    Aggregates.group("$name",
                            Accumulators.first("date", "$date"),
                            Accumulators.first("children", "$children"))
            ));
    
            for (Document document : groupResult) {
                System.out.println(document.toJson());
            }
    

      

  • 相关阅读:
    Silverlight 2中实现文件上传和电子邮件发送
    Silverlight结合Web Service进行文件上传
    silverlight DataGrid 内嵌ComboBox 实现加载和保存
    silverlight 使用IValueConverter 转换
    检测场所条件查询
    代码中的坏味道
    Prism初研究之Bootstrapper
    Prism初研究之简介
    编写可读代码的艺术
    ffmpeg怎么样处理网络流
  • 原文地址:https://www.cnblogs.com/bendoudou/p/9764900.html
Copyright © 2011-2022 走看看