Skip to content

Instantly share code, notes, and snippets.

@keepcosmos
Last active August 29, 2015 13:58
Show Gist options
  • Select an option

  • Save keepcosmos/10344167 to your computer and use it in GitHub Desktop.

Select an option

Save keepcosmos/10344167 to your computer and use it in GitHub Desktop.

Revisions

  1. keepcosmos revised this gist Apr 10, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion mongodb_mapreduce_group_by.js
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    db.messenger_rooms.mapReduce(
    function(){
    var date = new Date(this.created_at);
    date.setHours(date.getHours() + 9);
    date.setHours(date.getHours());
    var dateKey = (date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate());
    var reserved_count = (this.reservation_status == undefined || this.reservation_status == null) ? 0 : 1;
    emit(dateKey, {count: 1, reserved_count: reserved_count});
  2. keepcosmos created this gist Apr 10, 2014.
    23 changes: 23 additions & 0 deletions mongodb_mapreduce_group_by.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    db.messenger_rooms.mapReduce(
    function(){
    var date = new Date(this.created_at);
    date.setHours(date.getHours() + 9);
    var dateKey = (date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate());
    var reserved_count = (this.reservation_status == undefined || this.reservation_status == null) ? 0 : 1;
    emit(dateKey, {count: 1, reserved_count: reserved_count});
    },
    function(key, values){
    var sum = {count: 0, reserved_count: 0}
    values.forEach(function(value){
    sum["count"] += value["count"];
    sum["reserved_count"] += value["reserved_count"];
    });
    return sum;
    },
    {
    query: {
    created_at: {$gte: ISODate("2014-04-01"), $lte: ISODate("2014-04-03")}
    },
    out: "daily_rooms_count"
    }
    )