zoukankan      html  css  js  c++  java
  • mongo 分组 aggregation

    公司私用mongodb做后台存储,可能是图它的无结构,速度快,不过在我实际使用中,速度和mysql相比确实会快点
    不过需要分组聚合等查询的时候稍显麻烦,相比mysql而言,最近要做这方面的操作,就调研了下。

    sql和mongo聚合查询关键字对应

    sql 关键字 mongo aggregation关键字
    where $match
    group by $group
    having $match
    select … $project
    order by $sort
    limit $limit
    sum $sum
    count $sum
    join $lookup
    avg $avg
    min $min
    max $max

    文档结构如下:
    查 收到礼物(幸运魔方)数量最多的前五名主播在这里插入图片描述
    sql语句编写应该这样:

    SELECT
    	receiveUid,
    	receiveUname,
    	sum( number ) number 
    FROM
    	giftRecord 
    WHERE
    	giftName = '幸运魔方' 
    GROUP BY
    	receiveUid,
    	receiveUname 
    ORDER BY
    	number DESC 
    	LIMIT 5
    

    mongo 聚合操作如下:
    在这里插入图片描述
    需要注意分组里面_id字段是必须有 是分组字段,我这里根据收礼人id分组 所以是receiveUid,另外receiveUname也需要查询,因为要查出来

    如果使用spring-data-mongo操作就会更加清晰
    在这里插入图片描述

    更多mongo aggregation操作参见官方文档
    https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/

  • 相关阅读:
    window C/C++ 简单的IDE编译器
    ubuntu 安装 lamp
    架构设计
    linux 性能分析
    wifi基本原理
    openwrt 编译
    学习笔记day5:inline inline-block block区别
    脱离原来文档流产生浮动框
    meta标签清理缓存
    百度web前端面试2015.10.18
  • 原文地址:https://www.cnblogs.com/paper-man/p/13284596.html
Copyright © 2011-2022 走看看