MongoDB如何使用时间戳数组获取主机的活动时间

时间:2016-01-06 13:26:58

标签: mongodb aggregation-framework

我的数据库中有以下类型的MongoDB文档:

{
    "ts" : [
        ISODate("2015-11-27T18:15:21Z"),
        ISODate("2015-11-27T18:15:22Z"),
        ISODate("2015-11-27T18:15:30Z")
    ],
    "host" : "178.197.235.109",
    "minTs" : ISODate("2015-11-27T18:15:21Z")
},
{
    "ts" : [
        ISODate("2015-11-25T20:12:07Z"),
        ISODate("2015-11-25T20:12:08Z"),
        ISODate("2015-11-25T20:12:11Z")
    ],
    "host" : "178.194.35.159",
    "minTs" : ISODate("2015-11-25T20:12:07Z")
},

时间戳ts描述了特定主机对系统可见的位置。我想通过聚合和/或预测知道的是用户活动的会话数。因此我定义了一个3s的会话偏移量。如果主机的任何一对后续时间戳最多与此会话偏移量不同,我假设这些时间戳属于同一会话。如果没有,则启动新会话。在第一个记录中,我们将有2个会话,在第二个记录中1.请注意,用户可能只能看到一次。

是否可以查询每个文档的会话数?我此刻已经陷入困境,并希望得到任何帮助!

谢谢&干杯 西蒙

0 个答案:

没有答案