聚合Mongodb-计算两个时间戳之间的时间差

聚合Mongodb-计算两个时间戳之间的时间差,mongodb,aggregation-framework,Mongodb,Aggregation Framework,集合中的数据: { user:1 created: 1487593990260 header: { time: 1487593987000 } } { user:2 created: 1487594980677 header: { time: 1487594978000 } } { user:3 created: 1487595199046 header: {

集合中的数据:

{
    user:1
    created: 1487593990260
    header: {
        time: 1487593987000
    }
}
{
    user:2
    created: 1487594980677
    header: {
        time: 1487594978000
    }
}
{
    user:3
    created: 1487595199046
    header: {
        time: 1487595197000
    }
}
{
    user:2
    created: 1487595452715
    header: {
        time: 1487595450000
    }
}
{
    user:3
    created: 1487622649917
    header: {
        time: 1487622649000
    }
}
{
    user:1
    created: 1487622654169
    header: {
        time: 1487622654000
    }
}
{
    user:2
    created: 1487623129875
    header: {
        time: 1487623127000
    }
}
{
    user:2
    created: 1487623298718
    header: {
        time: 1487623297000
    }
}
{
    user:1
    created: 1487623336638
    header: {
        time: 1487623335000
    }
}
我的目标是:

user: 1
    created -> time -> created -> time -> created -> time -> ...
然后我想计算创建->时间->创建之间的时间,等等

我最不想做的事情是按用户分组,以查看时差。所以我可以计算每个用户的平均时间

但我不知道聚合框架是否可行?
或者我必须在客户端执行此操作,因为它是用于显示聊天的图表?

您是在查找每个用户的每个条目之间的差异还是“第一个”和“最后一个”条目之间的总差异?如果不是第一个,那么您最好遍历光标。如果是第二个选项,那么您可以简单地使用聚合框架的
$first
$last
运算符,然后减去这两个数字。我正在查找每个条目之间的差异。但是,将数据按顺序排序并在客户机中进一步处理要容易得多。我想是吧@NeilLunnI已经告诉过你,如果你想把它放在“系列”中,那就叫做“迭代光标”。没有聚合过程可以为您做到这一点。