网站首页 > 基础教程 正文
前言:
基于springboot、MongoTemplate进行练习MongoDB相关查询、聚合等功能学习。
1、项目配置
依赖
Mongodb数据库配置
然后直接引用MongoTemplate,基于springboot的MongoDB就这么吊,没有其他繁琐的xml配置
2、数据准备
3、MongoDB全文搜索查询
创建索引,基于TextCriteria查询
4、借助 ReduceFunction查询统计
数据准备:
通过 reduceFunction 对每个文档数据进行操作,
5、基于Map-Reduce计算
Map-Reduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。
MongoDB提供的Map-Reduce非常灵活,对于大规模数据分析也相当实用。使用 MapReduce 要实现两个函数 Map 函数和 Reduce 函数,Map 函数调用 emit(key, value), 遍历 collection 中所有的记录, 将 key 与 value 传递给 Reduce 函数进行处理。Map 函数必须调用 emit(key, value) 返回键值对。
6、MongoDB聚合管道
- $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
- $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
- $limit:用来限制MongoDB聚合管道返回的文档数。
- $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
- $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
- $group:将集合中的文档分组,可用于统计结果。
- $sort:将输入文档排序后输出。
- $geoNear:输出接近某一地理位置的有序文档。
Aggregation aggregation = Aggregation.newAggregation();
--------
基于mongoTemplate.aggregate(aggregation, "集合名", BasicDBObject.class);
a、分组group、排序sort
b、匹配搜索match、拆分unwind、分组group
c、匹配搜索match、拆分unwind、分组group、重定义project
d、两个集合关联查询 Aggregation.lookup
若 A集合关联B集合
参数: from B集合名
localField A集合存外键的字段
foreignField B集合与A集合关联的字段
as 重新组合成C集合名称
7、位置查询
Circle 、within
Point 、geoNear
总结:学习摘录于官网及网络文章,有示例相似处像原作者致敬,有不足之处欢迎指正交流!!!
猜你喜欢
- 2024-10-29 57个挑战之57(part6):客户端+web前端+服务端代码实现
- 2024-10-29 技术干货|MongoDB数据库常见操作命令
- 2024-10-29 ABP vNext框架文档解读28-数据过滤
- 2024-10-29 自建MongoDB实践:MongoDB 分片集群
- 2024-10-29 小程序 随机读取数据并生成分享图片 上手笔记
- 2024-10-29 go-mongox:简单高效,让文档操作和 bson 数据构造更流畅
- 2024-10-29 当MongoDB遇见Spark mongodb campass
- 2024-10-29 MongoDB 5.0 官方文档学习笔记 mongodb教程
- 2024-10-29 好东西,MySQL 数据库 MongoDB详解
- 2024-10-29 MongoDB 入门 day04 mongodb27017
- 最近发表
- 标签列表
-
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- mysql教程 (60)
- pythonif (86)
- location.href (69)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)