MongoDB的聚合操作

首先,我们先创建一下集合(数据表),代码及其结构如下:

db.tb4.insert([{"UserID":1,"age":27,"salary":4500,"sex":"女"},
                {"UserID":2,"age":17,"salary":7500,"sex":"男"},
                {"UserID":3,"age":22,"salary":8300,"sex":"女"},
                {"UserID":4,"age":19,"salary":3800,"sex":"男"},
                {"UserID":5,"age":23,"salary":5100,"sex":"男"},
                {"UserID":6,"age":19,"salary":3750,"sex":"女"}])

在这里插入图片描述
聚合查询,查询年龄小于20且性别为女的数据。

db.tb4.aggregate({'$match':{"age":{"$lt":20},"sex":{"$ne":"男"}}})

结果:
在这里插入图片描述
聚合查询,查询UserID小于3或者年龄大于20的数据。

db.tb4.aggregate({"$match":{"$or":[{"UserID":{"$lt":3}},{"age":{"$gt":20}}]}})

结果:
在这里插入图片描述
聚合查询的过滤字段,查询UserID大于3,且salary大于等于3800,不显示_id字段的数据。

db.tb4.aggregate({"$match":{"$and":[{"UserID":{"$gt":3}}
                ,{"salary":{"$gte":3800}}]}},
                {"$project":{"_id":0,"UserID":1,"age":1,"salary":1}})

结果:
在这里插入图片描述
聚合查询的新增字段,查询UserID大于4,且不显示_id字段,新增字段name的数据。

db.tb4.aggregate({"$match":{"UserID":{"$gt":4}}},
                   {"$project":{"UserID":1,"_id":0,"age":1,"salary":1,"sex":1,"name":"小红帽"}})

结果:
在这里插入图片描述
聚合查询的修改字段值,查询年龄小于20且字段name的值修改为age字段值,不显示_id字段值的数据。

db.tb4.aggregate({"$match":{"age":{"$lt":20}}},
                        {"$project":{"name":"$age","_id":0,"age":1,"UserID":1,"salary":1,"sex":1}}
                    )

结果:
在这里插入图片描述
聚合查询的字段值修改为其他数据,查询年龄大于20,且_id字段值不显示,将age字段值修改为"18岁"。

db.tb4.aggregate({"$match":{"age":{"$gt":20}}},
                    {"$project":{"_id":0,"age":1,"sex":1,"salary":1,"age":"18岁"}})

在这里插入图片描述
接着,我们创建一个集合,结构和内容如下:
在这里插入图片描述
聚合查询抽取字段,抽取个人信息性别不为”女性“且姓名,年龄,性别修改成为name,age,sex的数据。

db.tb2.aggregate({"$match":{"个人信息.性别":{"$ne":"女"}}},
                    {"$project":{"name":"$个人信息.姓名","age":"$个人信息.年龄","sex":"$个人信息.性别"}})

结果:
在这里插入图片描述
下面,我们有一个集合,结构如下:;
在这里插入图片描述
聚合查询特殊字符,将salary修改为$5000,UserID修改为1。

db.tb4.aggregate({"$match":{"age":{"$gt":20}}},
                    {"$project":{"_id":0,"UserID":1,"salary":{"$literal":"$5000"},"UserID":{"$literal":1}}})

结果:
在这里插入图片描述
最后,感谢大家前来观看鄙人的文章,文中或有诸多不妥之处,还望指出和海涵。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MongoDB提供了三种方式来执行聚合操作聚合管道方法、map-reduce方法和单一目标聚合方法。聚合管道方法可以理解为合计流水线法,通过对集合中的文档记录进行分类统计。该方法支持分片集合操作。使用聚合管道方法可以通过传递一系列的操作符来实现各种统计操作,比如求和($sum)、求平均($avg)、取最小($min)、取最大($max)等等。聚合管道方法的语法如下: ``` db.collection_name.aggregate( [ {$match:{<field>}}, // 统计查找条件 {$group:{<field1>, <field2>}} // field1为分类字段;field2为含各种统计操作符的数型字段,如$sum、$avg、$min、$max、$push、$addToSet、$first、$last操作符 ) ``` 聚合分类统计是聚合操作的一种,目前在MongoDB中有两种聚合操作功能:count()和distinct()。count()用于计算满足指定条件的文档数量,distinct()用于返回指定字段的唯一列表。使用这两个方法可以对集合中的数据进行简单的聚合统计。 我希望这些信息对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MongoDB——聚合操作详解](https://blog.csdn.net/cold___play/article/details/121447382)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不羁_神话

感谢支持,欢迎交流。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值