Mongo 命令总结

一.条件查询

   降序计数:-1
   db.ngx.app.api.find().sort({createdTime:-1}).count()   
   模糊查询: like %M1E%
   db.ngx.app.user.find({useragentOriginal:{$regex:/M1E/}})
  
   范围查询:  >= and  <=
   db.ngx.app.user.find({sysErrorCount:{gte:0,lte:10}}


   转换成json数组
   db.ngx.app.user.find({ip:"27.194.14.162"},{"epoch":3825}).toArray()


   多条件查询 and
   db.ngx.app.user.find({ip:"27.194.14.162","epoch":3825})
   多条件查询 or   
   db.ngx.app.user.find({ip:"27.194.14.162"},{"epoch":3825})  


根据某个字段进行查询: userid !=""
 db.ngx.offline.usertrajectory.find({"userid":{$ne:""}}).sort({"createdTime" :-1})




二.条件删除:


 db.ngx.offline.usertrajectory.remove({"createdTime":{$gt:new Date("2018-05-26")}})


三.聚合操作

1.按照日期返回,匹配数据集合,然后根据year,month,进行聚合统计

db.shopprilegerecoding.aggregate([
 {$match :{$and:[{createdTime:{'$gt':new Date("2019-01-01")}},{createdTime:{'$lt':new Date("2018-12-31")}}]} },
 {$group : 
     {
         _id : {
        year:{$year:"$createtime"},
        month:{$month:"$createtime"},
         }, 
        num_tutorial : {$count : "$reqCount"}
     }
  }
])






2.根据reqCount值,id值进行分组获取所有reqCount
db.ngx.app.api.aggregate([{$group : {_ id: "$reqCount", num_reqCount : {$sum : 1}}}])


db.ss.iss.user.aggregate(
    { $project : {
        nginxInTime :1,
        reqCount  
    }});



3.统计一天的数据量:
use db
根据nginxTime进行分组(实际就一组),然后计算有多少个document,计算reqCount(每天有多少条记录)


 r统计分析:
db.user.aggregate({$match:{"nginxInTime":"2018-06-20"}},{$project:{nginxInTime:1,reqCount:1}},{$group:{"_id":"nginxInTime",count:{$sum:1},reqCountSum:{$sum:"$reqCount"}  }});
{ "_id" : "nginxInTime", "count" : 29316, "reqCountSum" : NumberLong(74616) }


 






4.统计的更细致:根据某个字段进行分组,然后进行行数统计,并对其他字段值进行累加统计

>db.ss.iss.api.aggregate(

{

$match:{"nginxInTime":"2018-06-20"}  //过滤条件

},

{

$project:{nginxInTime:1,reqCount:1,bizErrorCount:1,sysErrorCount:1}   //聚合前,进行数据列过滤,只要这些列,字段id自动保留

},

{

$group:{

"_id":"nginxInTime",  //分组字段

count:{$sum:1},

reqCountSum:{$sum:"$reqCount"},

bizErrorCount:{$sum:"$bizErrorCount"},

sysErrorCount:{$sum:"$sysErrorCount"} 

 }


}

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值