use*_*093 8 mongodb mongodb-query
我有一个如下所示的访问日志,它们存储在mongodb实例中:
Time Service Latency
[27/08/2013:11:19:22 +0000] "POST Service A HTTP/1.1" 403
[27/08/2013:11:19:24 +0000] "POST Service B HTTP/1.1" 1022
[27/08/2013:11:22:10 +0000] "POST Service A HTTP/1.1" 455
Run Code Online (Sandbox Code Playgroud)
是否有像Oracle中的PERCENTILE_DISC这样的分析函数来计算百分位数?我想在一段时间内计算出潜伏期百分位数.
小智 9
似乎仍然没有本地计算百分位数的方法,但通过组合一些聚合运算符,您可以得到相同的结果.
db.items.aggregate([
{'$group': {
'_id': {
'league': '$league',
'base': '$base',
'type': '$type'
},
'value': {'$push': '$chaosequiv'}
}},
{'$unwind': '$value'},
{'$sort': {'value': 1}},
{'$group': {'_id': '$_id', 'value': {'$push': '$value'}}},
{'$project': {
'_id': 1,
'value': {'$arrayElemAt': ['$value', {'$floor': {'$multiply': [0.25, {'$size': '$value'}]}}]}
}}
], allowDiskUse=True)
Run Code Online (Sandbox Code Playgroud)
注意我在pymongo中编写了我的原始代码,以解决需要在第一组中的3个字段进行分组的问题,因此这可能比单个字段所需的更复杂.我会写一个特定于这个问题的解决方案,但我认为没有足够的具体信息.
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |