首页 > 作文

SpringBoot系列之MongoDB Aggregations用法详解

更新时间:2023-04-04 23:21:06 阅读: 评论:0

目录
1、前言2、什么是聚合?3、环境搭建4、数据initialize5、例子应用参考资料

1、前言

在的学习中,我们知道了spring data mongodb的基本用法,但是对于一些聚合操作,还是不熟悉的,所以本博客介绍一些常用的聚合函数

2、什么是聚合?

mongodb 中使用聚合(aggregations)来分析数据并从中获取有意义的信息。在这个过程,一个阶段的输出作为输入传递到下一个阶段

常用的聚合函数

聚合函数sql类比描述projectlect类似于lect关键字,筛选出对应字段matchwhere类似于sql中的where,进行条件筛选groupgroup by进行group by分组操作sortorder by对应字段进行排序countcount统计计数,类似于sql中的countlimitlimit限制返回的数据,一般用于分页outlect into new_table将查询出来的数据,放在另外一个document(table) , 会在mongodb数据库生成一个新的表

3、环境搭建

开发环境jdk 1.8springboot2.2.1maven 3.2+开发工具intellij ideasmartgitnavicat15

使用阿里云提供的脚手架快速创建项目:
/d/file/titlepic/error.html style="text-align:center">

也可以在idea里,将这个链接复制到spring initializr这里,然后创建项目

jdk选择8的

选择spring data mongodb

4、数据initialize

private static final string databa = "test";private static final string collection = "ur";private static final string ur_json = "/urjson.txt";private static mongoclient mongoclient;private static mongodataba mongodataba;private static mongocollection<document> collection;@beforeclasspublic static void init() throws ioexception {    mongoclient = new mongoclient("192.168.0.61", 27017);    mongodataba = mongoclient.getdataba(databa);    collection = mongodataba.getcollection(collection);    collection.drop();    inputstream inputstream = mongodbaggregationtests.class.getresourceasstream(ur_json);    bufferedreader reader = new bufferedreader(new inputstreamreader(inputstream));    reader.lines()            .foreach(l->collection.inrtone(document.par(l)));    reader.clo();}

5、例子应用

本博客,不每一个函数都介绍,通过一些聚合函数配置使用的例子,加深读者的理解

统计用户名为ur1的用户数量

 @test public void matchcounttest() {     document first = collection.aggregate(             arrays.aslist(match(filters.eq("name", "ur1")), count()))             .first();     log.info("count:{}" , first.get("count"));     asrtequals(1 , first.get("count")); }

skip跳过记录,只查看后面5条记录

@test public void skiptest() {      aggregateiterable<document> iterable = collection.aggregate(arrays.aslist(skip(5)高中政治难吗));      for (document next : iterable) {          log.info("ur:{}" ,next);      }  }

对用户名进行分组,避免重复,group第一个参数$name类似于group by name,调用accumulatorssum函数,其实类似于sql,lect 四川高考分数线出炉name ,sum(1) as sumnum fromurgroup by name

@test public void grouptest() { 培根先生    aggregateiterable<document> iterable = collection.aggregate(arrays.aslist(             group("$name" , accumulators.sum("sumnum" , 1)),             sort(sorts.ascending("_id"))             ));     for (document next : iterable) {         log.info("ur:{}" ,next);     } }

参考资料

mongodb 聚合 https://www.runoob.com/

mongodb南京农业大学排名 aggregations using java

饥饿的反义词

到此这篇关于springboot系列之mongodbaggregations用法的文章就介绍到这了,更多相关springbootmongodbaggregations用法内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 23:21:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/bab7300cc95c7c083ebe9ab25996a5e3.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:SpringBoot系列之MongoDB Aggregations用法详解.doc

本文 PDF 下载地址:SpringBoot系列之MongoDB Aggregations用法详解.pdf

标签:函数   类似于   数据   例子
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图