设为首页 收藏本站
查看: 1447|回复: 0

[经验分享] 第四章 查询语句:MongoDb VS MySql 4.3

[复制链接]

尚未签到

发表于 2018-10-28 10:27:45 | 显示全部楼层 |阅读模式
  
  ? group
  这个确实挺高级的,查看示例:
  db.coll.group(
  {key: { a: , b:  }, true true
  cond: { active:1 },
  reduce: function(obj,prev) { prev.csum += obj.c; },
  initial: { csum: 0 }
  });
  API:
  public DBObject group(DBObject key,
  DBObject cond,
  DBObject initial,
  String reduce)
  throws MongoExceptionParameters:
  key - - { a : true }
  cond - - optional condition on query
  reduce - javascript reduce function
  initial - initial value for first match on a key
  
  JAVA中应用例子:
  System.out.println("-----------华丽分隔线---------------");
  System.out.println("SELECT sum(isGold)
  goldCount,discipline,gender,event FROM schedule
  where isGold=1 group by discipline,gender,event");
  startTime = System.currentTimeMillis();
  //first group by key
  BasicDBObject key = new BasicDBObject();
  key.put("discipline", true);
  key.put("gender", true);
  key.put("event", true);
  
  //second where cond
  BasicDBObject cond = new BasicDBObject();
  cond.put("isGold", 1);
  
  //third initial
  BasicDBObject initial = new BasicDBObject();
  initial.put("goldCount", 0);
  
  //four String reduce
  String reduce = "function(obj,prev) { prev.goldCount +=
  obj.isGold; }";
  
  query = new BasicDBObject();
  
  field = new BasicDBObject();
  field.put("rsc",true);
  field.put("startDate",true);
  field.put("startTime",true);
  field.put("competitionStatus",true);
  sort = new BasicDBObject();
  sort.put("startDate", 1);
  sort.put("startTime", 1);
  DBObject obj = coll.group(key, cond, initial, reduce);
  //cur = coll.find(query,field).sort(sort);
  //System.out.println("查询获得的长度"+cur.count());
  System.out.println("查询耗时:"+(System.currentTimeMillis()-startTime)+"毫秒.");
  Set set = obj.keySet();
  Iterator it = set.iterator();
  int i=0;
  while(it.hasNext()){
  String str_key = (String) it.next();
  System.out.println(obj.get(str_key));
  i++;
  }
  System.out.println("i========"+i);
  
  运行结果:
  -----------华丽分隔线---------------
  SELECT sum(isGold) goldCount,discipline,gender,event FROM schedule where isGold=1 group by discipline
  查询耗时:63毫秒.
  { "discipline" : "AR" , "goldCount" : 4.0}
  { "discipline" : "AT" , "goldCount" : 45.0}
  { "discipline" : "BB" , "goldCount" : 1.0}
  { "discipline" : "BD" , "goldCount" : 5.0}
  { "discipline" : "BK" , "goldCount" : 2.0}
  { "discipline" : "BV" , "goldCount" : 2.0}
  { "discipline" : "BX" , "goldCount" : 11.0}
  { "discipline" : "CB" , "goldCount" : 2.0}
  { "discipline" : "CF" , "goldCount" : 12.0}
  { "discipline" : "CM" , "goldCount" : 2.0}
  { "discipline" : "CR" , "goldCount" : 4.0}
  { "discipline" : "CS" , "goldCount" : 4.0}
  { "discipline" : "CT" , "goldCount" : 8.0}
  { "discipline" : "DV" , "goldCount" : 8.0}
  { "discipline" : "EQ" , "goldCount" : 6.0}
  { "discipline" : "FB" , "goldCount" : 2.0}
  { "discipline" : "FE" , "goldCount" : 10.0}
  { "discipline" : "GA" , "goldCount" : 14.0}
  { "discipline" : "GR" , "goldCount" : 2.0}
  { "discipline" : "GT" , "goldCount" : 2.0}
  { "discipline" : "HB" , "goldCount" : 2.0}
  { "discipline" : "HO" , "goldCount" : 2.0}
  { "discipline" : "JU" , "goldCount" : 14.0}
  { "discipline" : "RO" , "goldCount" : 14.0}
  { "discipline" : "SA" , "goldCount" : 11.0}
  { "discipline" : "SH" , "goldCount" : 15.0}
  { "discipline" : "SO" , "goldCount" : 1.0}
  { "discipline" : "SW" , "goldCount" : 34.0}
  { "discipline" : "SY" , "goldCount" : 2.0}
  { "discipline" : "TE" , "goldCount" : 4.0}
  { "discipline" : "TK" , "goldCount" : 8.0}
  { "discipline" : "TR" , "goldCount" : 2.0}
  { "discipline" : "TT" , "goldCount" : 4.0}
  { "discipline" : "VO" , "goldCount" : 2.0}
  { "discipline" : "WP" , "goldCount" : 2.0}
  { "discipline" : "WR" , "goldCount" : 18.0}
  i========36


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-627408-1-1.html 上篇帖子: 第四章 查询语句:MongoDb VS MySql 4.2 下篇帖子: 推荐:MongoDB学习资料
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表