加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 系统 > 正文

Mongodb中group参数咋使用,有哪些选项

发布时间:2023-09-20 16:02:25 所属栏目:系统 来源:
导读:  这篇文章主要讲解了“Mongodb中group参数怎样使用,有哪些选项”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mongodb中group参数怎样使用,
  这篇文章主要讲解了“Mongodb中group参数怎样使用,有哪些选项”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mongodb中group参数怎样使用,有哪些选项”吧!
 
  // 准备测试数据
 
  db.user.drop();
 
  for(var i=10; i25的用户,按照class进行分组,显示每个class中的用户姓名和性别,并统计每组的人数
 
  db.user.group({
 
    key: {"class": true},
 
    initial: {"person": []},
 
    reduce: function(doc, out){
 
      out.person.push({name: doc.name, sex: doc.sex, age: doc.age});
 
    },
 
    finalize: function(out){
 
      out.count = out.person.length;
 
    },
 
    condition: {"age": {$gt: 25}}
 
  })
 
  // 分组计算每个class中,chinese最大值和最小值
 
  db.user.group({
 
    key: {"class": true},
 
    initial: {"chinese_min": 0, "chinese_max":0 },
 
    reduce: function(doc, out){
 
      out.chinese_min = doc.chinese;
 
      out.chinese_min = doc.chinese;
 
      out.chinese_min = Math.min(out.chinese_min, doc.chinese);
 
      out.chinese_max = Math.max(out.chinese_max, doc.chinese)
 
    },
 
  })
 
  // 利用分组,计算每个总成绩和成绩平均值
 
  db.user.group({
 
    key: {"_id" : true},
 
    initial: {name:"", total: 0, avg: 0},
 
    reduce: function(doc, out){
 
      out.name = doc.name;
 
      out.total = doc.chinese + doc.math + doc.english;
 
      out.avg = Math.floor(out.total / 3);
 
    }
 
  })
 
  group参数选项:
 
  1.key: 这个就是分组的key
 
  2.initial: 每组都分享一个初始化函数,特别注意:是每一组initial函数。
 
  3.reduce: 这个函数的第一个参数是当前的文档对象,第二个参数是上一次function操作的累计对象。有多少个文档, $reduce就会调用多少次。
 
  4.condition: 这个就是过滤条件。
 
  5.finalize: 这是个函数,每一组文档执行完后,多会触发此方法。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章