返回顶部
首页 > 资讯 > 数据库 >mongodb 常用命令 日期, 分组
  • 595
分享到

mongodb 常用命令 日期, 分组

2024-04-02 19:04:59 595人浏览 八月长安
摘要

日期分组 db.msds_acce***ecord.group({  keyf : function(doc){  var date =

日期分组
db.msds_acce***ecord.group({
 keyf : function(doc){  var date = new Date(doc.addtime);  var dateKey = ""+date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();  return {'day':dateKey}; //33}, 
 initial : {"count":0}, 
 reduce : function Reduce(doc, out) {  if(doc.url){    out.count +=1;  }
}
});



先插入测试数据:

for(var i=1; i<20; i++){

    var num=i%6;

    db.test.insert({_id:i,name:"user_"+i,age:num});

}

1.普通分组查询

db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){

prev.num++

}});

db.runCommand({group:

{

ns:"test",

key:{age:true},

initial:{num:0},

$reduce:function(doc,prev){

prev.num++}

}

});

2.筛选后再分组

db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){

prev.num++

},

condition:{age:{$gt:2}}

});

db.runCommand({group:

{

ns:"test",

key:{age:true},

initial:{num:0},

$reduce:function(doc,prev){

prev.num++},

condition:{age:{$gt:2}}

}

});

普通的$where查询:

db.test.find({$where:function(){

return this.age>2;

}

    });

group联合$where查询

db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){

prev.num++

},

condition:{$where:function(){

return this.age>2;

}

    }

});

3.使用函数返回值分组

//注意,$keyf指定的函数一定要返回一个对象

db.test.group({$keyf:function(doc){return {age:doc.age};},initial:{num:0},$reduce:function(doc,prev){

prev.num++

}

});

db.runCommand({group:

{

ns:"test",

$keyf:function(doc){return {age:doc.age};},

initial:{num:0},

$reduce:function(doc,prev){

prev.num++}

}

});

4.使用终结器

db.test.group({$keyf:function(doc){return {age:doc.age};},initial:{num:0},$reduce:function(doc,prev){

prev.num++

},

finalize: function(doc){ doc.count=doc.num;delete doc.num; }

});

db.runCommand({group:

{

ns:"test",

$keyf:function(doc){return {age:doc.age};},

initial:{num:0},

$reduce:function(doc,prev){

prev.num++},

finalize: function(doc){ doc.count=doc.num;delete doc.num; }

}

});

 

 

有关MapReduce


//首先插入测试数据
for(var i=1;i<21;i++)
{
    db.test.insert({_id:i,name:'mm'+i});
}

//进行mapReduce
db.runCommand(
{
    mapreduce:'test',
    map:function(){emit(this.name.substr(0,3),this);},
    reduce:function(key,vals){return vals[0];},  //注意:vals是一个Object对象而不是数组
    out:'wq'
});

注意:
1.mapreduce是根据map函数里调用的emit函数的第一个参数来进行分组的
2.仅当根据分组键分组后一个键匹配多个文档,才会将key和文档集合交由reduce函数处理。例如:
db.runCommand(
{
    mapreduce:'test',
    map:function(){emit(this.name.substr(0,3),this);},
    reduce:function(key,vals){return 'wq';}, 
    out:'wq'
});
执行mapreduce命令后,再查看wq表数据:
db.wq.find()

{ "_id" : "mm1", "value" : "wq" }
{ "_id" : "mm2", "value" : "wq" }
{ "_id" : "mm3", "value" : { "_id" : 3, "name" : "mm3" } }
{ "_id" : "mm4", "value" : { "_id" : 4, "name" : "mm4" } }
{ "_id" : "mm5", "value" : { "_id" : 5, "name" : "mm5" } }
{ "_id" : "mm6", "value" : { "_id" : 6, "name" : "mm6" } }
{ "_id" : "mm7", "value" : { "_id" : 7, "name" : "mm7" } }
{ "_id" : "mm8", "value" : { "_id" : 8, "name" : "mm8" } }
{ "_id" : "mm9", "value" : { "_id" : 9, "name" : "mm9" } }


您可能感兴趣的文档:

--结束END--

本文标题: mongodb 常用命令 日期, 分组

本文链接: https://lsjlt.com/news/43414.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mongodb 常用命令 日期, 分组
    日期分组 db.msds_acce***ecord.group({  keyf : function(doc){  var date =...
    99+
    2024-04-02
  • MongoDB日常运维-01常用命令汇总
    MongoDB常用命令汇总(一) ---增,删,改,查 一:增(insert) 二:删(delete) 三:改(update) 四:查(select)  ---连接数...
    99+
    2024-04-02
  • Mongodb 常用命令
    1. 创建数据库: use report    删除数据库:use report,  db.dropDatabase()2. 查看数据库: show dbs3. 查看表:sho...
    99+
    2024-04-02
  • MongoDB 常用的命令
    如果想查看当前连接在哪个数据库下面,可以直接输入db > db Admin 想切换到test数据库下面 > use test switched to db test > d...
    99+
    2024-04-02
  • MongoDB时间戳转日期及日期分组实例代码
    目录前言1、日期筛选2、日期转换3、日期分组4、日期排序补充:解决MongoDB存储时间时差的问题总结前言 最近遇到的一个数据统计折线图的性能优化点,可以说是一定思维上的转变,就记录下咯 背景:cron定时任务读取当前统...
    99+
    2023-05-16
    mongodb时间戳转时间 mongodb 时间戳 mongodb 日期分组
  • NoSql之Mongodb日常操作命令整理
    1、db.serverStatus()  看看分片性能信息db.serverStatus().connections;分片查看客户端连接数,mongod和mongos的连接属于长连接  ...
    99+
    2024-04-02
  • Java实现MongoDB的日期(Date)分组功能
      在上篇博文中,我通过封装的一个Java接口实现了MongoDB的Group功能,但是没有讲怎么根据日期Date查询,这里补充一下,如何完善MongoDB的日期Group功能。  在实现Group功能时,...
    99+
    2024-04-02
  • 常用Apache日志分析命令大全
    1、查看当天有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc -l 2、查看某一个页面被访问的次数: grep "/index.php" log_file | wc -...
    99+
    2022-06-03
    Apache Linux 命令 日志 运维
  • Mongodb常用命令之查询
    上一篇讲完了mongodb的增、删、改,本文就来讲解他的强大的查询功能。一、find命令简介及初探在mongodb中的查询使用的是find()命令。他2个参数,第一个参数是你的查询条件(默认为{}表示查询所...
    99+
    2024-04-02
  • mongodb常用命令有哪些
    这篇文章主要讲解了“mongodb常用命令有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mongodb常用命令有哪些”吧!一、数据库常用命令1、Hel...
    99+
    2024-04-02
  • MySQL日常命令
    MySQL日常操作 mysqladmin -u root -p password "abcabc" 给MySQL root 账号设置密码之前如果设置过密码就输原密码,没有则回车。登陆 ...
    99+
    2024-04-02
  • Linux日常维护常用命令
    本篇内容介绍了“Linux日常维护常用命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!网络命令: # ifconfig# 显示网络信息,包...
    99+
    2023-06-13
  • Shell日志分析常用命令和例子
    学会用shell分析日志只要一上午!!! 很多地方分享了日志分析的shell脚本,但是基本没说每个命令符的具体含义,学习成本还是很高,在这里总结下,方便大家快速入门。 1、在Windows下的用户要使用sh...
    99+
    2022-06-04
    例子 常用命令 日志
  • MongoDB的常用命令有哪些
    MongoDB的常用命令有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、数据库相关切换/创建数据库>use “dbname”;查询所有数据库>&n...
    99+
    2023-06-26
  • MongoDB的常用命令汇总(Mongo4.2.8)
    目录一、数据库相关二、用户相关三、集合Collection相关一、数据库相关 1.切换/创建数据库 >use “dbname”; 2.查询所有数据库 > show dbs...
    99+
    2024-04-02
  • Mysql日期计算的命令
    这篇文章主要介绍“Mysql日期计算的命令”,在日常操作中,相信很多人在Mysql日期计算的命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql日期计算的命令”的疑惑...
    99+
    2024-04-02
  • MongoDB常用的基本操作命令
    这篇文章主要讲解了“MongoDB常用的基本操作命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MongoDB常用的基本操作命令”吧! ...
    99+
    2024-04-02
  • Shell常用服务器日志分析命令总结
    目录1、查看有多少个IP访问2、查看某一个页面被访问的次数3、查看每一个IP访问了多少个页面4、将每个IP访问的页面数进行从小到大排序5、查看某一个IP访问了哪些页面6、去掉搜索引擎统计的页面7、查看2015年8月16日...
    99+
    2022-06-09
    Shell服务器日志分析命令 Shell服务器日志分析 Shell日志分析命令
  • python部分常用命令
    python中文注释方法 在python编写代码的时候,避免不了会出现或是用到中文,这时候你需要在文件开头加上中文注释。如果开头不声明保存编码的格式是什么,那么它会默认使用ASKII码保存文件,这时如果你的代码中有中文就会出错了,即使你的...
    99+
    2023-01-31
    常用命令 python
  • linux日常命令总结
    这篇文章主要介绍“linux日常命令总结”,在日常操作中,相信很多人在linux日常命令总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux日常命令总结”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作