首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

与MySQL等价的MongoDB : select count(*) c,sum(if(x='A',1,0)) as a,sum(if(x='B',1,0)) as b

与MySQL等价的MongoDB查询语句是:

代码语言:txt
复制
db.collection.aggregate([
  {
    $group: {
      _id: null,
      c: { $sum: 1 },
      a: { $sum: { $cond: [{ $eq: ["$x", "A"] }, 1, 0] } },
      b: { $sum: { $cond: [{ $eq: ["$x", "B"] }, 1, 0] } }
    }
  }
])

这个查询语句使用了MongoDB的聚合框架,通过$group操作符对集合进行分组,并使用累加器操作符$sum和条件操作符$cond来计算总数和满足条件的数量。

  • 概念:MongoDB是一个开源的文档型数据库,采用了类似JSON的BSON格式存储数据,具有高性能、高可扩展性和灵活的数据模型。
  • 分类:MongoDB属于NoSQL数据库,与传统的关系型数据库(如MySQL)相比,它不使用表格和行列的结构,而是使用文档和集合的结构来组织数据。
  • 优势:
    1. 灵活的数据模型:MongoDB的文档模型可以轻松地表示复杂的层次结构和嵌套关系,适用于各种数据类型和数据模式。
    2. 高性能:MongoDB支持水平扩展,可以通过分片来处理大规模数据和高并发访问,提供了快速的读写性能。
    3. 强大的查询功能:MongoDB支持丰富的查询语法和索引机制,可以进行灵活的数据检索和聚合操作。
    4. 自动故障恢复:MongoDB具有自动故障恢复和数据冗余机制,保证数据的可靠性和高可用性。
  1. 应用场景:MongoDB适用于需要处理大量非结构化数据、需要灵活的数据模型和高性能读写操作的场景,如社交网络应用、实时分析、日志存储、内容管理系统等。
  2. 推荐的腾讯云相关产品:腾讯云提供了MongoDB的托管服务,推荐使用腾讯云的云数据库MongoDB(TencentDB for MongoDB)产品。该产品提供了高可用、高性能的MongoDB数据库实例,支持自动备份、监控告警、数据迁移等功能。详情请参考腾讯云云数据库MongoDB产品介绍:https://cloud.tencent.com/product/mongodb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • oracle 中decode函数

    每个compare值顺次求值,如果发现一个匹配,则剩下compare值(如果还有的话)就都不再求值。一个为NULLbase_exp被认为和NULL compare值等价。...Decode函数在实际开发中非常有用 结合Lpad函数,如何使主键值自动加1并在前面补0 select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号...通常我们这么写: select count(*) from 表 where 性别 = 男; select count(*) from 表 where 性别 = 女; 要想显示到一起还要union一下,太麻烦了...用decode呢,只需要一句话 select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表 eg: select sum(decode(siteno...,‘LT’,1,0)),sum(decode(siteno,‘SZ’,1,0)) from facd605; select sum(case siteno when ‘LT’ then 1 else 0

    1.1K20

    元宵佳节:看Oracle技术粉们用SQL画团圆

    请看如下这段SQL,为大家绘制了团团圆圆五连环: with a as (select distinct round(a.x + b.x) x,round(a.y + b.y) y from (select...) select replace(sys_connect_by_path(point, '/'), '/', null) star from (select b.y, b.x, decode(a.x...这个SQL解释如下: 其中数字20表示五角星每一条边上个数(你也可以设置大一些或小一些), 其中数字5表示五角星边数, 其中数字2是为了调整横向字符间距纵向行距之间差异而设置, 你也可以不乘以这个...a as (SELECT x,y ,LAG(x,1,0) OVER(PARTITION BY y ORDER BY x) last_x FROM...Oracle 12c ASM 防火防盗新特性揭秘 DBA入门之路:学习进阶之经验谈 DBA入门之路:关于日常工作建议 电子渠道(网络销售)分析系统、数据治理 IT基础架构 分布式存储解决方案 |

    80050

    第四届蓝桥杯决赛B组CC++——格子刷油漆

    标题:格子刷油漆 X一段古城墙顶端可以看成 2*N个格子组成矩形(如图1所示) image.png 图1 现需要把这些格子刷上保护漆。...你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻格子(对角相邻也算数),但不能移动到较远格子(因为油漆未干不能踩!)比如:a d b c e f 就是合格刷漆顺序。...c e f d a b 是另一种合适方案。当已知 N 时,求总方案数。当N较大时,结果会迅速增大,请把结果对 1000000007 (十亿零七) 取模。...},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};//格子移动方向  int n,sum = 0,count = 0;//n列,sum种方法,目前走了cou个格子  void... dfs(int i,int j,int count) { if(count == 2*n)//当所有的格子都走了一遍了  { sum = (sum + 1) % MOD;//方法数+1

    54130

    MySQL优化特定类型查询(书摘备查)

    简单优化 select count(*) from world.city where id > 5; 改写为: select (select count(*) from world.city) - count...(*) from world.city where id <= 5; 使用一个查询统计一列中不同值数量 select sum(if(color='blue',1,0)) as blue, sum(if...(color='red',1,0)) as red from items; 使用count代替sum等价查询: select count(color='blue' or null) as blue,...确保on或using使用列上有索引。在添加索引时要考虑联接顺序。比如联接表A和B时候使用了列C,并且优化器按照从B到A顺序联接,那就不需要在B上添加索引。没有使用索引会带来额外开销。...完美主义者会喜欢下面这个查询方案: select actor.first_name, actor.last_name, c.cnt from sakila.actor inner join (select

    1.4K30
    领券