python - 根据时间戳进行 MapReduce

标签 python mongodb

Mongodb 数据库:

{"thread": "abc", "message": "hjhjh", "Date": (2010,4,5,0,0,0)}
{"thread": "abc", "message": "hjhjh",  "Date": (2009,3,5,0,0,0)}
{"thread": "efg", "message": "hjhjh",  "Date": (2010,3,7,0,0,0)}
{"thread": "efg", "message": "hjhjh",  "Date": (2011,4,5,0,0,0)}

如何对上述数据进行 Map-Reduce 或聚合以生成输出:

{"thread": "abc", "messages_per_month": 5}
{"thread": "efg", "messages_per_month": 4}

我正在尝试编写一些代码,但很难对未排序的日期进行平均。是否有任何内置函数可以平均时间来执行此操作?

最佳答案

您可以在日期上执行最小/最大操作,如here所述对于数字,只需为消息添加一个计数器。结果将是一个包含消息数量和最小/最大日期的线程列表。根据日期,您可以计算出月数,然后使用该月数来计算消息数量的平均值。

编辑:更新了链接,其中包含指向存档版本的链接

关于python - 根据时间戳进行 MapReduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10102349/

相关文章:

javascript - 设置自己的 mongoose schema _id 属性

mongodb - 按相对数组元素位置查找文档

python正则表达式问题

python - View 和 numpy 数组的浅拷贝有什么区别?

python - 如何在不打乱原始列表的情况下打乱复制的列表?

javascript - 如何使用 mongoose 更新 MongoDB 中的数组?

c# - 使用 C# api 创建一个 mongodb 上限集合

python - 是否可以将比较运算符作为参数传递给函数?

python - 如何在 Python for 循环中使用多个变量?

c# - Builders<TA>.Update.Set() 如何处理并行访问?