我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MongoDB 聚合分类

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MongoDB 聚合分类

MongoDB 聚合分类

db.transactions.insert([
    {
        symbol: "600519",
        qty: 100,
        price: 567.4,
        currency: "CNY"
    },
    {
        symbol: "AMZN",
        qty: 1,
        price: 1377.5,
        currency: "USD"
    },
    {
        symbol: "AAPL",
        qty: 2,
        price: 150.7,
        currency: "USD"
    }
])

按照交易货币来分组

db.transactions.aggregate([
 {
  $group:{
   _id:"$currency"
  }
 }
])
{ "_id" : "CNY" }
{ "_id" : "USD" }

使用聚合操作符计算分组聚合值

# totalQty 交易总股数
# totalNotional 交易总金额
# avgPrice 平均股价
# count 数量
# maxNotional 最大交易金额
# maxNotional 最小交易金额
db.transactions.aggregate([
    {
        $group: {
            _id: "$currency",
            totalQty: {
                $sum: "$qty"
            },
            totalNotional: {
                $sum: {
                    $multiply: ["$price", "$qty"]
                }
            },
            avgPrice: {
                $avg: "$price"
            },
            count: {
                $sum: 1
            },
            maxNotional: {
                $max: {
                    $multiply: [
                        "$price",
                        "$qty"
                    ]
                }
            },
            minNotional: {
                $min: {
                    $multiply: [
                        "$price",
                        "$qty"
                    ]
                }
            }
        }
    }
])
{ "_id" : "CNY", "totalQty" : 100, "totalNotional" : 56740, "avgPrice" : 567.4, "count" : 1, "maxNotional" : 56740, "minNotional" : 56740 }
{ "_id" : "USD", "totalQty" : 3, "totalNotional" : 1678.9, "avgPrice" : 764.1, "count" : 2, "maxNotional" : 1377.5, "minNotional" : 301.4 }

使用聚合操作符计算所有文档聚合值 将 _id 设置为 null 即可

db.transactions.aggregate([
    {
        $group: {
            _id: null,
            totalQty: {$sum: "$qty"},
            totalNotional: {$sum: {$multiply: ["$price", "$qty"]}},
            avgPrice: {$avg: "$price"},
            count: {$sum: 1},
            maxNotional: {$max: {$multiply: ["$price","$qty"]}},
            minNotional: {$min: {$multiply: ["$price","$qty"]}}
        }
    }
])
{ "_id" : null, "totalQty" : 103, "totalNotional" : 58418.9, "avgPrice" : 698.5333333333333, "count" : 3, "maxNotional" : 56740, "minNotional" : 301.4 }

使用聚合管道创建数组字段 将同一个组里面的 symbol 字段,都 push 到一个新字段 symbols

db.transactions.aggregate([
    {
        $group: {
            _id: "$currency",
            symbols:{$push:"$symbol"}
        }
    }
])
{ "_id" : "CNY", "symbols" : [ "600519" ] }
{ "_id" : "USD", "symbols" : [ "AMZN", "AAPL" ] }

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MongoDB 聚合分类

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MongoDB 聚合分类

db.transactions.insert([ { symbol: "600519", qty: 100, price: 567.4, currency: "CNY" }, {
MongoDB 聚合分类
2018-09-04

MongoDB聚合(aggregate)

https://www.cnblogs.com/wt7018/p/11929359.htmlMongoDB聚合(aggregate) 一、基础1、什么是聚合?聚合是基于数据处理的聚合管道,每个文档通过一个有多个阶段(stage)组成的管道可以对每个阶段的管道进
MongoDB聚合(aggregate)
2016-08-15

MongoDB(七):聚合aggregate

1. 聚合aggregate聚合主要用于计算数据,类似sql中的sum()、avg()语法:db.集合名称.aggregate([{管道:{表达式}}])stu准备的数据:db.stu.insertMany([{ name: "gj",gender:true,
MongoDB(七):聚合aggregate
2020-03-05

mongodb的聚合操作

1. 什么是聚合聚合是MongoDB的高级查询语言,它允许我们通过转化合并由多个文档的数据来生成新的在单个文档里不存在的文档信息。MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果,有点类似sql语句中
mongodb的聚合操作
2017-01-24

MongoDB 聚合查询详解

目录聚合管道管道阶段常见操作更多操作 - 投影更多操作 - 展开更多操作 - 分组更多操作 - 入库条件组累加器算术运算最值运算数组提取其他运算聚合管道聚合框架是 MongoDB 中的一组分析工具,可以对一个或多个集合中的文档进行分析。
2022-12-26

MongoDB 聚合管道使用

db.accounts.insert([{"name": {"first_name": "qingquan","last_name": "zeng"},"balance": 100},{"name": {"first_name": "fengxia","las
MongoDB 聚合管道使用
2016-11-25

MongoDB聚合查询详解

这篇文章主要介绍了MongoDB聚合查询详解的相关资料,需要的朋友可以参考下
2022-12-26

mongodb高级聚合查询

https://www.cnblogs.com/zhoujie/p/mongo1.htmlmongodb高级聚合查询   在工作中会经常遇到一些mongodb的聚合操作,特此总结下。mongo存储的可以是复杂类型,比如数组、对象等mysql不善于处理的文档型结
mongodb高级聚合查询
2016-06-26

MongoDB 聚合表达式与阶段

$$variable ###3. 常量表达式# $literal 用于表示常量,即此处的 $name 表示的是字符串 "$name"$literal:"$name" 聚合管道阶段$project 对输入文档进行再次投影$match 对输入文档进行筛选$limi
MongoDB 聚合表达式与阶段
2016-03-18

编程热搜

目录