帝王 发表于 2018-10-26 07:38:14

mongodb 常用命令 日期, 分组

日期分组  
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; i2;
  }
  });
  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
页: [1]
查看完整版本: mongodb 常用命令 日期, 分组