示例文档:
{
"id":123,
"message_type":"RECEIVE",
"conversation_id":"1"
"date":"2020-01-01T12:00:00"
},
{
"id":456,
"message_type":"SEND",
"conversation_id":"1"
"date":"2020-01-01T13:00:00"
},
{
"id":789,
"message_type":"SEND",
"conversation_id":"1"
"date":"2020-01-01T14:00:00"
}
上下文:
对消息的响应未嵌套在消息下方。他们也不共享父母/孩子的关系。
每个发送的消息都应被视为最后收到的消息的答复。 (我知道它可能看起来很奇怪,但确实如此)
询问:计算每月邮件的平均响应时间。
问题:中位数计算可能不是问题,但我不确定如何考虑文档的统一层次结构来计算响应时间。
我的尝试:
有更好的方法吗?可以使用管道聚合吗?
答案 0 :(得分:1)
也许有一种我不知道的使用管道aggs来实现此目的的方法,但是由于文档的上下文彼此之间并不“意识到”,因此您可能需要为此使用脚本化度量。
伪代码如下:
这里是concrete, similar example。忽略nested
方面-原理仍然存在。