我想基于存储在MongoDB中的数据实现一个直方图。我想要得到基于巴特金的计数。我必须只根据一个输入值创建存储桶,即组的数量。例如group =4,假设有多个事务正在运行,并且我们将事务时间存储为其中一个字段。我想根据完成交易所需的时间来计算交易的数量。如何使用聚合框架或map reduce来创建bucketing?
Sample data:
{
"transactions": {
"149823": {
"timerequired": 5
},
"168243": {
"timerequired": 4
},
"168244": {
"timerequired": 10
},
"168257": {
"timerequired": 15
},
"168258": {
"timerequired": 8
},
"timerequired": 18
}
}在输出中,我想打印存储桶大小和落入该存储桶的事务计数。
存储桶计数
0-5 2
5-10 2
10-15 1
15-20 1
发布于 2018-07-27 23:48:35
从mongo版本3.4开始,可以使用函数$bucket和$bucketAuto。他们可以轻松地解决您的请求:
db.transactions.aggregate( [
{
$bucketAuto: {
groupBy: "$timerequired",
buckets: 4
}
}
])https://stackoverflow.com/questions/41130723
复制相似问题