java Mongondb聚合函数&去重
时间:2019-08-17
本文章向大家介绍java Mongondb聚合函数&去重,主要包括java Mongondb聚合函数&去重使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 去重: 2 3 通过distinct方法我们可以对指定字段进行去重,在mysql也有这个关键字 4 5 DBObject query = new BasicDBObject(); 6 mongoTemplate.getCollection("collectionName").distinct("去重字段名",query) 7 8 9 分组聚合: 10 11 利用aggregation对字段的不同值数量进行统计,例如如下: 12 13 统计字段为content,别名为value 14 15 Aggregation aggregation = Aggregation.newAggregation(Aggregation.group("Content").count().as("value")); 16 //查询条件 17 Criteria criteria = new Criteria().where("条件一").is("条件一"); 18 criteria.and("条件二").is("条件二"); 19 aggregation.match(criteria);List<Map> maps = mongoTemplate.getCollection("collectionName").aggregate(aggregation); 20 21 22 另一种写法 23 24 Criteria criteria = new Criteria().where("条件一").is("条件一"); 25 criteria.and("条件二").is("条件二"); 26 Aggregation.sort(sort), Aggregation.limit(10) 27 Aggregation aggregation = Aggregation.newAggregation(Aggregation.match(criteria),Aggregation.group("Content").count().as("value"),Aggregation.sort(sort), Aggregation.limit(10)); 28 List<DBObject> pvs =mongoTemplate.aggregate(aggregation, "collectionName", DBObject.class).getMappedResults(); 29 30 31 mongo的分页查询: 32 33 直接使用skip()加limit()可以达到分页的效果,但是在数据量大的情况下,此方法性能欠妥 34 35 所有我的优化如下:记录上一次最后一条记录的id,在下一页的查询将其作为一个查询条件,查询大于此id的即可,sort排序设置值为-1表示降序,1为升序。 36 37 DBObject query = new BasicDBObject(); 38 query.put("条件一","条件一"); 39 DBCursor dbCursor; 40 if(page == 1 || page == 0 || StringUtil.isStrEmpty(lastId)) { 41 dbCursor = mongoTemplate.getCollection(appid).find(query).sort(new BasicDBObject("name", -1)).skip(size * (page - 1)).limit(size); 42 }else{ 43 BasicDBObject decoment = new BasicDBObject("$gt",new ObjectId(lastId)); 44 query.put("_id",decoment); 45 dbCursor = mongoTemplate.getCollection(appid).find(query).sort(new BasicDBObject("name", -1)).skip(size * (page - 1)).limit(size); 46 } 47 return dbCursor.toArray();
原文地址:https://www.cnblogs.com/lljboke/p/11367408.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Octave入门之数据操作—ML Note28
- matlab导出csv文件多种方法实现
- matlab面向对象编程基础
- Octave数据运算基础教程-ML Note29
- Octave中数据的可视化—ML Note 30
- matplotlib animation FuncAnimation画2D线图
- 坚持一下只需要一个理由就够了
- IGD反转世代距离-多目标优化评价指标概念及实现
- webpack实战——样式文件分离
- matlab绘图工具
- python批量移动文件&重命名代码分享
- [DeeplearningAI 笔记]第一章2.11-2.16 向量化与 python/numpy 向量说明
- 自己动手作图深入理解二叉树、满二叉树及完全二叉树
- Matlab矩阵加入新元素
- 每个Python程序员都应该知道的10个缩写