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

①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 ++;

      }

}});

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Lucky-stars/p/10555313.html

为什么会这样[user_mongo@nosql01 replicaset]$ cd /opt [user_mongo@nosql01 opt]$ ll total 0 drwxr-xr-x. 3 root root 25 Mar 16 17:08 servers drwxr-xr-x. 2 root root 51 Mar 16 17:10 software [user_mongo@nosql01 opt]$ tar -zxvf /opt/software/mongodb-linux-x86_64-rhel70-4.4.12.tgz -C /opt/servers/mongodb_demo/replicaset/ mongodb-linux-x86_64-rhel70-4.4.12/LICENSE-Community.txt tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/LICENSE-Community.txt: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/MPL-2 tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/MPL-2: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/README tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/README: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/THIRD-PARTY-NOTICES tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/THIRD-PARTY-NOTICES: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/install_compass tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/install_compass: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongo tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongo: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongod tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongod: Cannot open: No such file or directory mongodb-linux-x86_64-rhel70-4.4.12/bin/mongos tar: mongodb-linux-x86_64-rhel70-4.4.12: Cannot mkdir: Permission denied tar: mongodb-linux-x86_64-rhel70-4.4.12/bin/mongos: Cannot open: No such file or directory tar: Exiting with failure status due to previous errors [user_mongo@nosql01 opt]$ tar -zcvf /opt/software/mongodb-linux-x86_64-rhel70-4.4.12.tgz -C /opt/servers/mongodb_demo/replicaset/ tar: Cowardly refusing to create an empty archive Try `tar --help' or `tar --usage' for more information.
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值