最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MongoDB高级查询[聚合Group]

来源:动视网 责编:小采 时间:2020-11-09 10:50:39
文档

MongoDB高级查询[聚合Group]

MongoDB高级查询[聚合Group]:接上一篇... 见: http://www.linuxidc.com/Linux/2013-04/82787.htm Group 为了方便我还是把我的表结构贴上来: 和数据库一样g 接上一篇... 见: Group 为了方便我还是把我的表结构贴上来: 和数据库一样group常常用于统计。MongoDB的gro
推荐度:
导读MongoDB高级查询[聚合Group]:接上一篇... 见: http://www.linuxidc.com/Linux/2013-04/82787.htm Group 为了方便我还是把我的表结构贴上来: 和数据库一样g 接上一篇... 见: Group 为了方便我还是把我的表结构贴上来: 和数据库一样group常常用于统计。MongoDB的gro


接上一篇... 见: http://www.linuxidc.com/Linux/2013-04/82787.htm Group 为了方便我还是把我的表结构贴上来: 和数据库一样g

接上一篇... 见:

  • Group
  • 为了方便我还是把我的表结构贴上来:

    和数据库一样group常常用于统计。MongoDB的group还有很多限制,如:返回结果集不能超过16M,, group操作不会处理超过10000个唯一键,好像还不能利用索引[不很确定]。

    Group大约需要一下几个参数。

    下面我用Java对他们做一些测试。

    我们以age年龄统计集合中存在的用户。Spring Schema和上次的一样。有了MongoTemplate对象我们可以做所有事的。以age统计用户测试代码如:

    @Test
    public void testGroupBy() throws Exception {
    String reduce = "function(doc, aggr){" +
    " aggr.count += 1;" +
    " }";
    Query query = Query.query(Criteria.where("age").exists(true));
    DBObject result = mongoTemplate.getCollection("person").group(new BasicDBObject("age", 1),
    query.getQueryObject(),
    new BasicDBObject("count", 0),
    reduce);

    Map map = result.toMap();
    System.out.println(map);
    for (Map.Entry o : map.entrySet()) {
    System.out.println(o.getKey() + " " + o.getValue());
    }
    }

    key为new BasicDBObject("age", 1)

    cond为:Criteria.where("age").exists(true)。即用户中存在age字段的。

    initial为:new BasicDBObject("count", 0),即初始化reduce中人的个数为count为0。假如我们想在查询的时候给每个年龄的人增加10个假用户。我们只需要传入BasicDBObject("count", 10).

    reduce为:reduce的javascript函数

    上面的执行输出如:

    2 [age:23.0, count:1.0]
    1 [age:25.0, count:1.0]
    0 [age:24.0, count:1.0]

    前面的是一个序号,是Mongo的java-driver加上去的。我们可以看到结果在后面。

    文档

    MongoDB高级查询[聚合Group]

    MongoDB高级查询[聚合Group]:接上一篇... 见: http://www.linuxidc.com/Linux/2013-04/82787.htm Group 为了方便我还是把我的表结构贴上来: 和数据库一样g 接上一篇... 见: Group 为了方便我还是把我的表结构贴上来: 和数据库一样group常常用于统计。MongoDB的gro
    推荐度:
    标签: 查找 聚合 mo
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top