Java操作MongoDB(聚合函数)向Mongo插入及查询数据(上)

简介: Java操作MongoDB(聚合函数)向Mongo插入及查询数据

数据库结果展示


插入后数据结构如下


20210623165119852.png

具体内容


20210623165157183.png


聚合函数(aggregate)


1.1 作用


用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果,是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息


1.2 聚合管道


20210623165917395.png

1.2.1 $project实例

db.article.aggregate(
    { $project : {
        title : 1 ,
        author : 1 ,
    }}
 );

这样的话结果中就只还有_id,tilte和author三个字段了,默认情况下_id字段是被包含的,如果要想不包含_id话可以这样:

db.article.aggregate(
    { $project : {
        _id : 0 ,
        title : 1 ,
        author : 1
    }});

1.2.2 $match实例

db.articles.aggregate( [
                        { $match : { score : { $gt : 70, $lte : 90 } } },
                        { $group: { _id: null, count: { $sum: 1 } } }
                       ] );

match7090group管道操作符进行处理。


1.2.3 $skip实例

db.article.aggregate(
    { $skip : 5 });


经过$skip管道操作符处理后,前五个文档被"过滤"掉


1.2.4 $group实例(按性别分组,计算年龄和)

db.user.aggregate([
    {$group:{
            _id:"$sex",
            num:{$sum:"$age"}
    }
}])

1.2.5 $limit: 限制经过管道的文档数量( $limit的参数只能是一个正整数)

db.article.aggregate({ $limit : 5 });

1.2.6 $unwind:将数组元素拆分为独立字段


例如:article文档中有一个名字为tags数组字段:

> db.article.find() {
"_id" : ObjectId("528751b0e7f3eea3d1412ce2"),
"author" : "Jone", "title" : "Abook",
"tags" : [  "good",  "fun",  "good" ] }

使用$unwind后:

> db.article.aggregate({$project:{author:1,title:1,tags:1}},{$unwind:"$tags"})
{
        "result" : [
                {
                        "_id" : ObjectId("528751b0e7f3eea3d1412ce2"),
                        "author" : "Jone",
                        "title" : "A book",
"tags" : "good"
                },
                {
                        "_id" : ObjectId("528751b0e7f3eea3d1412ce2"),
                        "author" : "Jone",
                        "title" : "A book",
"tags" : "fun"
                },
                {
                        "_id" : ObjectId("528751b0e7f3eea3d1412ce2"),
                        "author" : "Jone",
                        "title" : "A book",
  "tags" : "good"
                }
        ],
        "ok" : 1
}

1.2.7 $sort 实例

db.users.aggregate( { $sort : { age : -1, posts: 1 } });

1.3 组聚合操作符

20210623170849596.png

1.4 Boolean类型聚合操作符

20210623170926204.png

1.5 比较类型聚合操作符

20210623170954785.png

1.6 算术类型聚合操作符

20210623171028765.png

1.7 字符串类型聚合操作符

20210623171056577.png

1.8 日期类型聚合操作符

20210623171121366.png

1.9 条件类型聚合操作符


20210623171206379.png


注:以上操作符都必须在管道操作符的表达式内来使用。


各个表达式使用参照:http://docs.mongodb.org/manual/reference/operator/aggregation-group/

目录
相关文章
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB写入数据的过程
在MongoDB数据更新时,WiredTiger存储引擎通过预写日志(Journal)机制先将更新写入日志文件,再通过检查点操作将日志中的操作刷新到数据文件,确保数据持久化和一致性。检查点定期创建,缩短恢复时间,并保证异常终止后可从上一个有效检查点恢复数据。视频讲解及图示详细说明了这一过程。
435 23
【赵渝强老师】MongoDB写入数据的过程
|
Java Apache 开发者
解决java.lang.IllegalArgumentException: Invalid uri由无效查询引起的问题
最后,当你修改代码以避免这个异常时,保持代码的整洁和可读性同样重要。注释你的代码,用意图清晰的方法名,并确保逻辑简单明了,这样在未来你或其他开发者需要时可以轻松地维护它。
1293 20
|
SQL Java 数据库
解决Java Spring Boot应用中MyBatis-Plus查询问题的策略。
保持技能更新是侦探的重要素质。定期回顾最佳实践和新技术。比如,定期查看MyBatis-Plus的更新和社区的最佳做法,这样才能不断提升查询效率和性能。
803 1
|
NoSQL JavaScript 前端开发
Java访问MongoDB
Java访问MongoDB
260 21
|
SQL NoSQL Java
Java使用sql查询mongodb
通过MongoDB Atlas Data Lake或Apache Drill,可以在Java中使用SQL语法查询MongoDB数据。这两种方法都需要适当的配置和依赖库的支持。希望本文提供的示例和说明能够帮助开发者实现这一目标。
685 17
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
2059 6
|
存储 JSON NoSQL
微服务——MongoDB的数据模型
MongoDB采用文档(document)作为最小存储单位,类似关系型数据库中的行,使用BSON(Binary-JSON)格式存储数据。BSON是JSON的二进制扩展,支持内嵌文档和数组,新增了如Date、BinData等特殊数据类型,具有轻量、高效、可遍历的特点,适合非结构化与结构化数据存储。其灵活性高,但空间利用率略低。BSON数据类型包括string、integer、boolean等基本类型及date、object id等扩展类型。
406 0
|
SQL NoSQL Java
Java使用sql查询mongodb
通过使用 MongoDB Connector for BI 和 JDBC,开发者可以在 Java 中使用 SQL 语法查询 MongoDB 数据库。这种方法对于熟悉 SQL 的团队非常有帮助,能够快速实现对 MongoDB 数据的操作。同时,也需要注意到这种方法的性能和功能限制,根据具体应用场景进行选择和优化。
677 9
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
293 8
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
1016 6

推荐镜像

更多