当前位置:  开发笔记 > 编程语言 > 正文

Map-减少每分钟MongoDB中的文档计数

如何解决《Map-减少每分钟MongoDB中的文档计数》经验,为你挑选了1个好方法。

我有一个MongoDB集合,它created_at存储在每个文档中.这些存储为MongoDB日期对象,例如

{ "_id" : "4cacda7eed607e095201df00", "created_at" : "Wed Oct 06 2010 21:22:23 GMT+0100 (BST)", text: "something" }
{ "_id" : "4cacdf31ed607e0952031b70", "created_at" : "Wed Oct 06 2010 21:23:42 GMT+0100     (BST)", text: "something" }
....

我想计算每分钟之间创建的项目数量,因此我可以将数据传递到Google Charts中以生成如下内容:

替代文字

我如何使用map reduce函数执行此操作,还是有一个奇特的MongoDB聚合函数,我可以使用它?



1> rubayeet..:

Map函数应该发出一个时间戳对象,调整到分钟,计数为1. reduce函数应该总和所有计数:

map = function() {
    var created_at_minute = new Date(this.created_at.getFullYear(),
                                     this.created_at.getMonth(), 
                                     this.created_at.getDate(), 
                                     this.created_at.getHours(), 
                                     this.created_at.getMinutes());
    emit(created_at_minute, {count: 1});
}

reduce = function(key, values) { 
    var total = 0;
    for(var i = 0; i < values.length; i++) { 
        total += values[i].count; 
    }
    return {count: total};
}

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有