MongoDB_09之计数去重分组等

1.count 计数
查询persons中美国学生的人数
  db.persons.find({country:"USA"}).count()
2.distinct 去重
查询出persons中一共有多少个国家,分别是什么
  db.runCommand({distinct:"persons",key:"country"}).values //这里的values为数组的键 如:values:[China,USA]
3.group 分组
  语法:
  db.runCommand({group:{
    ns:集合名字,
    key:分组的键对象,
    initial:初始化累加器,
    $reduce:组分解器,
    condition,条件,
    finalize:组完成器
  }})
//分组首先会按照key进行分组,每组的每一个文档全要执行$reduce的方法,它接收2个参数,一个是组内本条记录,一个是累加数据
例:请查出persons中每个国家学生数学成绩最好的学生信息(必须在90分以上)  //思路:按国家分组,然后查询每组中最好的,然后在取出成绩在90分以上的学生
db.runCommand({group:{
    ns:"persons",
    key:{"country":true},
    initial:{m:0},
    $reduce:function(doc,prev) {
      if(doc.m > prev.m) {
         prev.m = doc.m;
         prev.name = doc.name;
         prev.country = doc.country;
      }
    },
    condition:{m:{$gt:90}}
}})
使用完成器对以上查出来的结果进行描述显示
db.runCommand({group:{
    ns:"persons",
    key:{"country":true},
    initial:{m:0},
    $reduce:function(doc,prev) {
      if(doc.m > prev.m) {
         prev.m = doc.m;
         prev.name = doc.name;
         prev.country = doc.country;
      }
    },
    condition:{m:{$gt:90}},
    finalize:function(prev) {
      prev.m = prev.name + "Math scores" + prev.n
   }
}})
4.用函数格式化分组的键
如果在集合中出现键country和counTry同时存在,分组又如何解决呢?
用下面这种方式替换上面的key
  $keyf:function(doc) {
return {coutry:doc.counTry}
  }

命令执行器runCommand
5.用命令执行一次删除集合的操作
db.runCommand({drop:"map"})

常用shell命令
6.查询服务器版本号和主机操作系统
db.runCommand({buildInfo:1})
7.查询执行命令的集合的详细信息,大小,空间,索引等
db.runCommand({collStats:"persons"})
8.查询操作本集合最后一次错误信息
db.runCommand({getLastError:"persons"})



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值