MongoDB-聚合操作$group

聚合管道阶段

  • $group: 对文档进行分组

格式:

{$group:{
    _id:<expression>,
    <field1>: {<accumulator1>: <expression1>}
    ... ...
}}

group 括号当中属性的含义:

  • _id: 定义分组规则
  • <field>: 定义新字段

示例

添加测试数据,在添加之前先将之前的旧数据进行删除,删除的方式我这里不介绍自行删除,添加测试的数据脚本如下:

db.person.insert([
    {name:'zs', age:10, city:'北京'},
    {name:'ls', age:20, city:'上海'},
    {name:'ww', age:30, city:'北京'},
    {name:'zl', age:40, city:'上海'},
    {name:'lnj', age:50, city:'北京'},
    {name:'jjj', age:60, city:'广州'},
]);

然后就是使用 group:

db.person.aggregate([
    {$group:{
        _id: '$city',
        totalAge: {$sum:'$age'},
        avgAge: {$avg:'$age'},
        minAge: {$min:'$age'},
        maxAge: {$max:'$age'},
        totalName: {$push:'$name'}
    }}
]);
posted @   BNTang  阅读(200)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示