首页 > 数据库技术 > 详细

第23章:MongoDB-聚合操作--聚合命令

时间:2019-03-18 22:04:04      阅读:174      评论:0      收藏:0      [点我收藏+]
①count()

范例:统计students表中的数据量

db.students.count();

 

范例:模糊查询

db.students.count("name":/张/i);

 

 

②distinct()

范例:求某个字段不同的值

db.students.distinct("name");

db.runCommand({"distinct":"students","key":"name"});

③group()

key: 用于指定要分组的键

initial: 对于分组统计的字段设置键名和初始值

reduce: 循环每个分组中的每个文档,一组循环完了会继续下一组

condition:用于分组前筛选掉不满足条件的文档

finalize: 用于对分组后的结果进一步处理,每组都会调用finalize

 

 

db.articles.group({

   "key": {"author": true},

   "initial": {"sum": 0},

   "reduce": function(doc, prev) {

       if(doc.like > 10) {

           prev.sum += 1;

       }

   }

})

[

       {

               "author" : "zhangsan",

               "sum" : 2

       },

       {

               "author" : "lisi",

               "sum" : 2

       },

       {

             "author" : "mengday",

               "sum" : 0

       }

]

 

db.articles.group({

   "key": {"author": true},

   "initial": {"sum": 0},

   "reduce": function(doc, prev) {

       if(doc.like > 10) {

           prev.sum += 1;

       }

   },

   "condition":{"author": {"$ne": "mengday"}}

})

[

       {

               "author" : "zhangsan",

               "sum" : 2

       },

       {

               "author" : "lisi",

          "sum" : 2

       }

]

 

db.articles.group({

   "key": {"author": true},

   "initial": {"sum": 0},

   "reduce": function(doc, prev) {

       if(doc.like > 10) {

         prev.sum += 1;

       }

   },

   "condition":{"author": {"$ne": "mengday"}},

   "finalize": function(doc){

       if(doc.author == "zhangsan"){

           delete doc

       }

   }

})

[

       {

               "author" : "zhangsan",

               "sum" : 3

       },

       {

               "author" : "lisi",

               "sum" : 2

       }

]

 

范例:查询所有年龄大于等于19岁的学生信息,并且按照年龄分组

db.runCommand({"group":{

    "ns":"students",//集合

    "key":{"age":true},//按照age分组

    "initial":{"count":0},//默认数量为0

    "condition":{"age":{"$gt":19}},//条件

    "$reduce":function(doc,prev){//完成后的操作

           prev.count ++;

      }

}});

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?

 

第23章:MongoDB-聚合操作--聚合命令

原文:https://www.cnblogs.com/Lucky-stars/p/10555313.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!